Когда пользователь вводит неправильные данные, я хочу, чтобы на странице отображалось сообщение в течение 10 секунд, а затем перенаправлял в Google. Когда я использую этот код, страница перенаправляется в Google без правильного отображения этого сообщения.
if($m==12 && $d==31)
{
echo "you entered wrong data";
sleep(10) ;
header("Location: http://google.com");
die();
}
Как я могу это исправить?
Вы не можете ответить на запрос 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>
Других решений пока нет …