2012-06-01 85 views
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吗?

谢谢!

+0

延迟到什么时候或多长时间? –

+0

大约10秒 –

+0

PHP在网页呈现给用户之前运行。所以,除非你想给他们10秒的空白页面(我怀疑),否则你将不得不使用Javascript/Headers,是的。 – pikzen

回答

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»); 

最好是使用这三种的组合,也向禁用了这些重定向的用户显示一条消息技术带有一个链接,允许他们手动点击。

+0

谢谢!工作很棒!我会接受,当它让我。 –

3

由于输出已经发生,您不能执行HTTP标头重定向。相反,你应该建立一个元刷新,将用户重定向到HTML文档的<head>

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

表单正在对自己定位。用''做js重定向的另一种方法是什么?谢谢! –

2

PHP是一个服务器端语言,这是之前显示给用户的内容执行。

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