2015-06-17 70 views
1

我想将我的用户重定向到一个新页面,但当前网站继续运行脚本,在指定地址10分钟后发送线程消息。我想是这样的:超时处理电子邮件php

Header('Location: xy.com'); 
sleep(100); 
do_the_email_sending_here(); 

但实际上它并没有奏效,因为该网站在等待100秒,因此该网站没有立即重定向我。任何想法如何解决这个问题?任何想法while()或for()循环?

+0

仅仅因为你发出了header()调用并不意味着客户端会奇迹般地开始去那里。它可能会去那里,但不需要,直到脚本的其余部分完成。无论如何,睡眠(100)将等待100秒。你应该使用一个作业调度程序,例如'at'在将来发送电子邮件的时间为+10分钟,而不是希望用户不会逃脱并导致脚本关闭。 –

+0

我不认为你可以做到这一点没有更多的..你用来冲洗缓冲区,但我认为你不能再发送partials或更确切地说,现代浏览器不会显示partials ..但我可以错误.. –

+0

我会尝试以不同的方式提出问题。共有3页。希望将用户从“A”站点重定向到“B”站点,而不是从“B”站点到“C”站点。如果用户离开“B”站点或因特网连接发生了问题,并且他无法到达C站点,则比我想发送电子邮件。像这样的东西“哦,看起来停下来”。任何其他解决方案都可以。 – szebasztian

回答

0

试试这个:

  Header("Refresh: 600;", "Location: xy.com"); 
     do_the_email_sending_here(); 

Refresh: 600;将瓶坯你的头600秒或10分钟。

+0

这不好。我立即想要重定向,并将其保留在服务器上运行的php。 – szebasztian