0

如何在 php 中延迟执行一段代码?

    if ($qry->execute($leads)) {
    echo'<div class="note success">' . 
            $_POST["first_name"] . ', Your entry was successful!
        </div>';

        // Set up email params

此代码显示“成功”消息,然后向用户发送电子邮件。显示消息后,我想重定向用户。

这在PHP中可能吗?我需要使用 JavaScript 吗?

谢谢!

4

3 回答 3

13

如果你想延迟 PHP 代码的执行,可以使用sleep函数。但是,您似乎想延迟客户端的重定向。您可以使用 JavaScript、<meta>刷新和Refresh标题来执行此操作。

使用Refresh标题:

header('Refresh: «timeout in seconds»; URL=http://example.com/myurl');

使用<meta>刷新:

    <meta http-equiv="refresh" content="«timeout in seconds»; URL=http://example.com/myurl">

使用 JavaScript:

setTimeout(function(){
 location.replace("/myurl");
},«timeout in milliseconds»);

最好的办法是结合使用这三者,并为禁用了这些重定向技术的用户显示一条消息,并提供一个允许他们手动点击的链接。

于 2012-06-01T21:43:16.630 回答
3

由于输出已经发生,您不能进行 HTTP 标头重定向。相反,您应该设置元刷新来重定向<head>HTML 文档中的用户:

<meta http-equiv="refresh" content="10;url=http://www.example.com/newpage.php" /> 
于 2012-06-01T21:43:56.597 回答
2

PHP 是一种服务器端语言,它在向用户显示任何内容之前执行。

这是在页面呈现后必须发生的事情,所以是的,Javascript 将是一个更好的解决方案。

于 2012-06-01T21:44:10.357 回答