【发布时间】:2015-06-17 15:10:17
【问题描述】:
我想将我的用户重定向到一个新页面,但当前站点继续运行一个脚本,该脚本会在 10 分钟后在指定地址发送一个线程消息。我试过这样的事情:
Header('Location: xy.com');
sleep(100);
do_the_email_sending_here();
但实际上它不起作用,因为该站点等待了 100 秒,因此该站点没有立即重定向我。知道我该如何解决这个问题吗?对 while() 或 for() 循环有什么想法吗?
【问题讨论】:
-
仅仅因为你发出了一个 header() 调用并不意味着客户端会神奇地开始去那里。它可能会去那里,但在脚本的其余部分完成之前不需要。 sleep(100) 无论如何都会等待 100 秒。您可能应该使用作业调度程序,例如
at将工作安排在未来 +10 分钟发送到电子邮件,而不是希望用户不会点击转义并导致您的脚本被关闭。 -
我认为你不能再这样做了。你曾经能够刷新缓冲区,但我认为你不能再发送部分,或者更确切地说,现代浏览器不会显示部分..但我可能是错的..
-
我会尝试以不同的方式提出问题。共有 3 页。 A 想要将用户从“A”站点重定向到“B”站点,然后从“B”站点重定向到“C”站点。如果用户离开“B”站点或互联网连接出现问题,并且他无法访问 C 站点,那么我想发送一封电子邮件。像这样的“哦,看起来停止了”。任何其他解决方案都可以。
标签: php email redirect location sleep