PHP Redirect Pause - PullRequest
       9

PHP Redirect Pause

11 голосов
/ 10 апреля 2009

Как сделать паузу на странице на определенное количество секунд, прежде чем перенаправить пользователя на другую страницу HTML / PHP с помощью PHP?

Ответы [ 8 ]

33 голосов
/ 10 апреля 2009

Это должно работать:

<?php
header('Refresh: 5; URL=http://yoursite.com/page.php');
//other code
?>

и позволит вашему пользователю видеть любой вид вывода, который вы хотите (Вы будете перенаправлены в течение X секунд, нажмите «да», если нет, и т. Д.)

15 голосов
/ 10 апреля 2009

Низкотехнологичное решение, не требующее 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:" заключается в том, что вам не нужно приостанавливать выполнение скрипта, который будет казаться пользователю таким, как если бы сервер занят или их соединение зависло.

Это решение также дает пользователю возможность сразу перейти на новую страницу вместо того, чтобы ждать x количество секунд , пока их браузер не отображает информацию.

Редактировать: Я думаю, также стоит отметить, что если вы решите использовать метод header (), вы должны убедиться, что продолжительность sleep () не слишком велика. Я думаю, что большинство браузеров генерируют тайм-аут соединения после того, как не получает никаких данных от сервера в течение 1 минуты.

8 голосов
/ 10 апреля 2009

никогда используйте сон таким образом. Даже при небольшой нагрузке на ваш сервер не хватит http-соединений. Хуже всего, если ваш брандмауэр заканчивается.

Параметр задержки в заголовке перенаправления выполнен по той же причине.

4 голосов
/ 19 марта 2015

Если вы хотите подождать, а затем вернуться на предыдущую страницу, вот как

$referrer = $_SERVER['HTTP_REFERER']; 

header ("Refresh: 2;URL='$referrer'"); 
3 голосов
/ 10 апреля 2009

Другие 2 опции - это перенаправление Javascript с использованием setTimeout () или мета-тег обновления с тайм-аутом.

3 голосов
/ 10 апреля 2009

Обновление : это работает, но, возможно, не самое подходящее решение для этой ситуации. Смотрите комментарии.

Может быть, это то, что вы ищете?

<?php
sleep(5);
header("Location: http://www.example.com/");
exit();
?>
0 голосов
/ 08 октября 2014

поставьте это в шапку.

 <meta http-equiv="refresh" content="0.01;makensucces.html" />  

на месте 0,01 вы должны поставить секунды, я использовал десятичное число.

и вместо makensucces.html вам нужно убрать имя из файла, который вы хотите.

0 голосов
/ 23 апреля 2014

Попробуйте:

<?php
$url=base_url().'page_you_want_to_go_to'
header('Refresh: X; URL=$url');
?>

Это даст вам дополнительную гибкость при обмене между локальным и удаленным сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...