PHP:所有脚本中的ignore_user_abort(true)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP:所有脚本中的ignore_user_abort(true)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个服务器端使用 PHP的网站.

用户访问页面,PHP进行一些计算,将数据写入MysqL数据库等.

想象一下,用户访问PHP用户创建帐户的页面.创建包括两部分:将注册数据插入“用户”表,并将此帐户的设置插入表“设置”.这是两个必须一个一个地执行的SQL查询.如果用户在第一次查询退出页面,则“设置”中不会插入任何值.

我怎么能避免这个问题?我想只需使用ignore_user_abort(true),对吗?

那么在每个PHP脚本的顶部调用ignore_user_abort(true)是不是很有用?我不知道应该导致问题的任何情况.

对于您的具体示例,使用数据库事务(如Ignacio所述)将是更合适的方法.

在其他情况下,您可能希望确保用户不能提前中止,但与数据库无关.例如,如果更新数据库然后发送邮件,则不希望用户邮件发出之前能够停止该过程.在这种情况下,ignore_user_abort是合适的.

但是,请注意,由于客户端中断连接而导致的管道损坏不会立即停止执行,只是在您下次尝试写入脚本输出时.这可以通过调用echo或PRint,或者甚至只是通过关闭PHP标记并在打开一个空格之前插入一些空格(…?><?PHP ...).因此,如果您在页面顶部拥有脚本的所有“操作”部分,那么在尝试编写任何页面内容之前,您不必担心管道损坏会影响应用程序逻辑. 当然,无论如何,你应该以这种方式将动作逻辑与页面内容分开. 从http://php.net/manual/en/function.ignore-user-abort.php#refsect1-function.ignore-user-abort-notes

脚本宝典总结

以上是脚本宝典为你收集整理的PHP:所有脚本中的ignore_user_abort(true)全部内容,希望文章能够帮你解决PHP:所有脚本中的ignore_user_abort(true)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。