Проблема HTTP с перенаправлением


Когда пользователь вводит неверные данные, я хочу, чтобы страница показывала сообщение в течение 10 секунд, а затем перенаправлялась в Google. Когда я использую этот код, страница перенаправляется в Google без правильного отображения этого сообщения.

if($m==12 && $d==31)
    {
     echo "you entered wrong data"; 
     sleep(10) ;
     header("Location: http://google.com");
    die();
}

Как я могу это исправить?

Author: TylerH, 2015-08-01

1 answers

Вы не можете ответить на HTTP-запрос ресурсом и сообщением о том, что запрошенный ресурс можно найти по другому URL-адресу.

Если вы хотите перенаправить по истечении определенного периода времени, вам необходимо использовать решение на уровне документа (например, <meta> или JavaScript).

Например:

function redirect() {
    location.replace("http://google.com");
}
setTimeout(redirect, 10000);

Это сказало...

Люди читают с разной скоростью, и люди не всегда уделяют постоянное внимание данному окну браузера (начните что-то загружать, а затем переключение на другую вкладку не является редкостью).

Я склонен придерживаться эмпирического правила, что если сообщение стоит показывать пользователю, то его стоит показывать до тех пор, пока он активно не отклонит его.

<p> you entered wrong data </p>
<p> <a href="http://google.com/">continue</a> </p>
 2
Author: Quentin, 2015-08-06 15:31:47