Отображать сообщение перед перенаправлением на другую страницу

У меня есть простой вопрос, но я не знаю. Я хотел бы сначала отобразить сообщение перед перенаправлением на другую страницу, но мой код просто перенаправляет страницу напрямую, не отображая сообщение, или время отображения слишком короткое, я не уверен. Мой код, как показано ниже, советует PLS. большое спасибо.

echo "Please Log In First";
header("location: login6.php");

Ответ 1

Вы не можете так поступать. Заголовок PHP должен быть отправлен перед любым контентом, поэтому правильный порядок:

header("location: login6.php");
echo "Please Log In First";

Но эти коды будут перенаправлены мгновенно и не позволят вам увидеть контент. Поэтому я бы сделал перенаправление JavaScript:

echo "Please Log In First";
echo "<script>setTimeout(\"location.href = 'http://www.forobd2.com';\",1500);</script>";

Ответ 2

Вы можете использовать обновление заголовка. Он будет ожидать указанное время перед перенаправлением. Затем вы можете отобразить свое сообщение.

header( "refresh:5; url=login.php" ); //wait for 5 seconds before redirecting

Ответ 3

Обновление HTTP-обновления до 5 секунд:

header('Refresh:5; url=login6.php');
echo 'Please Log In First';

Ответ 4

Перенаправление - это перенаправление; -)

Если вы сообщите обозревателю, используя заголовок Location: для перенаправления на другую страницу, браузер делает именно это: он перенаправляет на другую страницу. И браузер делает это немедленно - без каких-либо задержек.

Поэтому ваш echo не будет отображаться вообще.

Сначала установите заголовки

Кроме того, вам нужно установить заголовки перед каждой другой операцией вывода (как указано Fred -ii-):

// First, echo headers
header("location: login6.php");

// Then send any other HTML-output
echo "Please Log In First";

Лучше не использовать авто-перенаправления

Вполне вероятно, что вы не увидите сообщение, а затем - через определенное время - автоматически переадресовываете на другую страницу. Люди могут запутаться в этом процессе.. Лучше сделайте это:

Покажите страницу входа и, представляющую пользовательский hinter или сообщение об ошибке на этой странице.

Общее решение

Подготовьте компонент в сеансе пользователя, содержащий информацию, которая будет отображаться в следующем экземпляре script. Этот компонент может быть списком таких сообщений:

$_SERVER[ 'sys$flashMessagesForLater' ] = array(
  "Sorry, userID and password didn't match.",
  "Please login again."
);

Каждый раз, когда запрос script приходит в, проверьте, является ли $_SERVER[ 'sys$flashMessagesForLater' ] непустым массивом.

Если это так, вывести эти значения в четко определенный расположенный на сгенерированной HTML-странице. Четко определенное местоположение всегда будет находиться в том же месте, где-то в верхней части каждой страницы. Возможно, вы захотите добавить окно с сообщением об ошибках.

Возможно, вы захотите подготовить класс следующим образом:

class CFlashMessageManager {

  static public function addFlashMessageForLater( $message ) {

    $_SERVER[ 'sys$flashMessagesForLater' ][] = $message;

  }

  static public function flashMessagesForLaterAvailable() {

    return isset( $_SERVER[ 'sys$flashMessagesForLater' ] )
        && is_array( $_SERVER[ 'sys$flashMessagesForLater' ] )
        && ( 0 < count( $_SERVER[ 'sys$flashMessagesForLater' ] ))
        ;

  }

  static public function getFlashMessageForLaterAsHTML() {

    return implode( '<br />', $_SERVER[ 'sys$flashMessagesForLater' ] );

  }

} // CFlashMessageManager

Ответ 5

Вы можете перенаправить html: поместите это в голову

<meta http-equiv="refresh" content="5; url=http://example.com/">

И страница будет перенаправлена ​​через 5 секунд (измените 5 на количество секунд, которое вы хотите)

Ответ 6

Рабочий пример в php.

echo "<script>";
echo " alert('Import has successfully Done.');      
        window.location.href='".site_url('home')."';
</script>";

Ответ 7

попробуйте функцию сна

<?php
sleep(10);//seconds to wait..
echo "Please Log In First";
header("location: login6.php");
?>