Как приостановить страницу за определенное количество секунд, прежде чем перенаправлять пользователя на другую страницу HTML/PHP с помощью PHP?
Перенаправление PHP
Ответ 1
Это должно работать:
<?php
header('Refresh: 5; URL=http://yoursite.com/page.php');
//other code
?>
и позволит вашему пользователю видеть любой вид вывода, который вы хотите (вы будете перенаправлены в X Seconds, нажмите yere, если нет, и т.д.)
Ответ 2
Низкотехнологичное решение, не требующее Javascript или даже PHP:
<html>
<head>
<title>Redirecting...</title>
<meta http-equiv="refresh"
content="10;URL=http://www.newsite.com">
</head>
<body>
You are being automatically redirected to a new location.<br />
If your browser does not redirect you in 10 seconds, or you do
not wish to wait, <a href="http://www.newsite.com">click here</a>.
</body>
</html>
Преимущество этого решения с использованием заголовка "Location:" заключается в том, что вам не нужно приостанавливать выполнение script, которое будет отображаться для пользователя, как если бы сервер занят или их соединение зависло.
Это решение также дает пользователю возможность немедленно перейти на новую страницу, а не ждать x количество секунд, в то время как их браузер не отображает информацию.
Edit: Я думаю, что также стоит отметить, что если вы решите использовать метод header(), вам нужно убедиться, что продолжительность sleep() не слишком длинная. Я думаю, что большинство браузеров генерируют время ожидания соединения после того, как не получили никаких данных с сервера в течение 1 минуты.
Ответ 3
никогда не используйте этот сон. Даже при небольшой нагрузке на вашем сервере не будет http-соединений. Хуже, если ваш брандмауэр заканчивается.
Параметр задержки в заголовке перенаправления выполнен точно по той же причине.
Ответ 4
Другие 2 варианта - это переадресация Javascript с использованием setTimeout() или тега meta refresh с таймаутом.
Ответ 5
Если вы хотите подождать, а затем вернуться к предыдущей странице здесь, как
$referrer = $_SERVER['HTTP_REFERER'];
header ("Refresh: 2;URL='$referrer'");
Ответ 6
Обновление: это работает, но может и не быть наиболее подходящим решением для этой ситуации. См. Комментарии.
Возможно, это то, что вы ищете?
<?php
sleep(5);
header("Location: http://www.example.com/");
exit();
?>
Ответ 7
Try:
<?php
$url=base_url().'page_you_want_to_go_to'
header('Refresh: X; URL=$url');
?>
Это даст вам дополнительную гибкость при обмене между локальным хостом и удаленным сервером.
Ответ 8
поместите это в заголовок.
<meta http-equiv="refresh" content="0.01;makensucces.html" />
на месте 0.01 вы должны поставить секунды, я использовал десятичное число.
и на месте makensucces.html вам нужно поместить имя из файла, который вы хотите.