Отображать сообщение перед перенаправлением на другую страницу
У меня есть простой вопрос, но я не знаю. Я хотел бы сначала отобразить сообщение перед перенаправлением на другую страницу, но мой код просто перенаправляет страницу напрямую, не отображая сообщение, или время отображения слишком короткое, я не уверен. Мой код, как показано ниже, советует 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");
?>