Php 如何延迟代码执行?

Php 如何延迟代码执行?,php,redirect,Php,Redirect,如何延迟php中代码块的执行 if ($qry->execute($leads)) { echo'<div class="note success">' . $_POST["first_name"] . ', Your entry was successful! </div>'; // Set up email params 此代码显示一条成功消息,然后向用户发送电子邮件。显示消息后,我想

如何延迟php中代码块的执行

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

        // Set up email params
此代码显示一条成功消息,然后向用户发送电子邮件。显示消息后,我想重定向用户

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


谢谢

如果要延迟PHP代码的执行,可以使用函数。但是,您似乎希望延迟客户端的重定向。您可以使用JavaScript、refresh和refresh头来实现这一点

使用刷新标题:

使用刷新:


最好是将这三种技术结合使用,并为禁用这些重定向技术的用户显示一条消息,其中包含一个允许他们手动单击的链接。

由于已经发生输出,因此无法执行HTTP头重定向。相反,您应该设置元刷新以重定向HTML文档中的用户:

<meta http-equiv="refresh" content="10;url=http://www.example.com/newpage.php" /> 

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


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

将其延迟到何时或多长时间?PHP在页面呈现给用户之前运行。所以,除非你想让他们看到一个空白页面10秒钟,我对此表示怀疑,否则你必须使用Javascript/页眉,是的。我刚刚注意到你直接使用了$_POST['first_name',],而没有传递它。这可能会打开你的网站;考虑对用户提交的数据进行消毒以防止该安全漏洞。表单正处于自身位置。在js中使用?谢谢
    <meta http-equiv="refresh" content="«timeout in seconds»; URL=http://example.com/myurl">
setTimeout(function(){
 location.replace("/myurl");
},«timeout in milliseconds»);
<meta http-equiv="refresh" content="10;url=http://www.example.com/newpage.php" />