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

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

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

Solutions Collecting From Web of "Отображать сообщение перед перенаправлением на другую страницу"

Вы не можете так поступать. Заголовок 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>"; 

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

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

HTTP перенаправить перенаправление на ожидание 5 секунд:

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

Переадресация – это перенаправление 😉

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

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

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

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

 // First, echo headers header("location: login6.php"); // Then send any other HTML-output echo "Please Log In First"; 

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

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

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

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

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

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

Каждый раз, когда приходит запрос на скрипт , проверьте, является ли $_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 

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

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

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

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

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

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

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