Как заморозить скрипт PHP на несколько секунд? - PullRequest
0 голосов
/ 08 сентября 2010

Я бы хотел, чтобы мой PHP-скрипт зависал на экране не менее 5 секунд перед загрузкой в ​​следующий скрипт. Я пробовал «Sleep ()», однако это не та функция, которую я ищу, поскольку она только приостанавливает скрипт, который «собирается» быть загруженным.

Вот мои коды:

echo "Welcome ",$_SESSION['username']."<br>";
    echo "Click here to Logout :    ".'<br><a href="logout.php">Logout</a>';

    sleep(10);

    header("Location: http://192.168.11.32/phploginserver/test.php");

    echo '<script type="text/javascript">window.location="test.php"</script>';    
}

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

Ответы [ 3 ]

1 голос
/ 08 сентября 2010
$time = new DateTime();
$newtime = $time->Modify("+5 seconds");



while($newtime > (new DateTime()))
    {
    // Do nothing
    }
0 голосов
/ 21 декабря 2012

Вы можете использовать дополнительный параметр с заголовком php, чтобы задержать его.Как это:

header('Refresh: 10; url=http://192.168.11.32/phploginserver/test.php'); 
0 голосов
/ 08 сентября 2010

Вы не можете остановить скрипт PHP на экране.
Просто потому, что на экране нет PHP-скриптов. Но только HTML, отображаемый браузером.

Такая заморозка считается плохой практикой и не используется в наши дни.
Либо покажите сообщение, если оно действительно важно, либо немедленно доставьте пользователя к месту назначения (предпочтительно).
Вы можете использовать некоторые советы на основе AJAX, как это делает stackoverflow.

чтобы мои пользователи могли просматривать их имена

Разве они не знают это уже?
Разве они не видят это на следующей странице?
Что если пользователь потревожился и не заметил это сообщение?

...