Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将表单发送到php脚本,用户永远不会知道或看到_Php_Email_Background Process_Performance - Fatal编程技术网

将表单发送到php脚本,用户永远不会知道或看到

将表单发送到php脚本,用户永远不会知道或看到,php,email,background-process,performance,Php,Email,Background Process,Performance,在我的网站上,我有一个功能,允许您跟踪其他用户的更新。当用户对其信息进行更改时,跟踪他的任何人都将收到此更改的电子邮件 我将其设置为php更改数据库中的信息,然后搜索用户联系人,查看谁在跟踪他/她,并向跟踪的人发送电子邮件,通知他们更改 自从添加此通知功能以来,我遇到的问题是,插入页面加载(表单发布到自身)并几乎立即显示更改(取决于跟踪特定用户的人数),页面加载和显示更新可能需要几分钟(因为php会在页面重新加载之前发送所有电子邮件) 我如何设置它,发送电子邮件的脚本在后台某处运行,用户不必在页

在我的网站上,我有一个功能,允许您跟踪其他用户的更新。当用户对其信息进行更改时,跟踪他的任何人都将收到此更改的电子邮件

我将其设置为php更改数据库中的信息,然后搜索用户联系人,查看谁在跟踪他/她,并向跟踪的人发送电子邮件,通知他们更改

自从添加此通知功能以来,我遇到的问题是,插入页面加载(表单发布到自身)并几乎立即显示更改(取决于跟踪特定用户的人数),页面加载和显示更新可能需要几分钟(因为php会在页面重新加载之前发送所有电子邮件)

我如何设置它,发送电子邮件的脚本在后台某处运行,用户不必在页面重新加载之前等待电子邮件发送,甚至可能退出网站,如果脚本仍在运行,仍然可以发送电子邮件


另外,我所有的编程和开发技能都是自学的,所以我不懂很多术语……你可能需要把你的回答说得哑口无言,这样我才能理解你在说什么。很抱歉给你带来不便,非常感谢你的帮助。

我很惊讶仅仅发送一些电子邮件就需要几分钟,b但无论如何,您至少可以通过四种方式来实现:

  • 使用ajax将表单数据发送到单独的脚本,该脚本在表单正常发布时发送电子邮件
  • 具有表单脚本分叉(
    pcntl
    必需)
  • 通过php向您自己的页面发出异步请求(使用cURL设置低超时,或打开套接字)
  • 使用
    exec('script-that-sends-emails-args>>其他一些文件2>&1&');

似乎是一个很好的解决方案,可以将任务的主要负担转移到非Web服务器进程。@gearman我不知道这意味着什么……哦,哈哈哈!哇,我觉得自己像个白痴。谢谢@Wrikken.Hehe,嗯,gearman听起来更像是用户名,而不是扩展;)这需要这么长时间,用户可以将其通知设置为接收电子邮件或文本。如果他们想收到一条短信,因为我在注册时没有询问他们有什么服务提供商,我让脚本运行一个for循环,只向四个主要提供商(verizon、att、sprint、tmobile)发送该号码。此for循环嵌套在while循环中,该循环发送给跟随此特定用户的所有人。因此,如果一个用户有100人在跟踪他或她,并且他们都想发短信,那么脚本在页面重新加载之前发送400封电子邮件。这样做是不礼貌的。。你应该有一个短信服务器。