【问题标题】:Timeout handle email php超时处理电子邮件php
【发布时间】: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


【解决方案1】:

试试这个:

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

Refresh: 600; 将在 600 秒或 10 分钟内生成您的标题。

【讨论】:

  • 这不好。我立即想重定向,并将其保留在服务器上正在运行的 php 中。
【解决方案2】:

问题解决方案:Cron Job,好好学习。

【讨论】:

    猜你喜欢
    • 2010-12-08
    • 2018-12-28
    • 2014-11-29
    • 2015-05-20
    • 2010-11-03
    • 2011-11-22
    • 1970-01-01
    • 2015-12-27
    • 2015-01-24
    相关资源
    最近更新 更多