我是网络开发的新手,正在尝试建立一个具有多个 PHP 页面和 MySQL 连接的网站。
我刚刚发现,如果我的 page1.php 正在运行,并且我尝试打开 page2.php,page2.php 会卡在加载过程中,什么也不会显示。
在 page1.php 的情况下,它需要很长时间才能完成(它遍历数据库并进行一些更新),page2.php 将只显示黑页,直到发生网关超时错误。即使我关闭 page1.php 也会发生这种情况,page1.php 上的脚本似乎一直在后台运行,直到它完成。
谁能告诉我可能是什么问题?可能是 php.ini 上的一些配置问题?
最佳答案
即 session 锁定 session 存储文件:
- page1.php:
session_start()
锁定 session 文件。 - page2.php: session 文件上的
session_start()
block 。 - page1.php:完成它的长时间处理,显式或隐式调用
session_write_close()
- page2.php:
session_start()
解锁并可以继续
补救措施是在任何长时间事件之前调用 session_write_close()
。如果需要在 page1.php 完成时将数据保存到 session 中,请再次调用 session_start()
。
关于另一个 PHP 脚本正在运行时,PHP 页面卡在加载中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28151982/