加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在两个PHP脚本中同时使用相同的会话ID

发布时间:2020-12-13 21:47:41 所属栏目:PHP教程 来源:网络整理
导读:我偶尔发现 PHP会话有一个奇怪的问题. 当我使用SAME会话ID运行两个PHP脚本时,第二个脚本将被卡住,直到第一个脚本完成. 我想这是因为尝试两次打开同一个会话存储文件.但可能我不对. 您将永远不会在正常的站点工作中捕获此效果,因为用户通常不会同时打开两个或
我偶尔发现 PHP会话有一个奇怪的问题.
当我使用SAME会话ID运行两个PHP脚本时,第二个脚本将被卡住,直到第一个脚本完成.
我想这是因为尝试两次打开同一个会话存储文件.但可能我不对.
您将永远不会在正常的站点工作中捕获此效果,因为用户通常不会同时打开两个或更多页面.
但是,如果您尝试使用file_get_contents()获取同一站点的页面内容,则会遇到此问题.
此外,我通过上下文复制我的cookie,因此file_get_contents()尝试重新打开已在调用脚本中打开的相同会话.
结果,我坚持使用长时间运行的脚本(约5-10分钟),这也禁止我使用相同的sessionid / login打开同一站点的任何新页面.
我该如何解决这个问题?你有没有看到任何漂亮的解决方案?

解决方法

是的,这称为“会话锁定”,在PHP中是正常的.

一种解决方案不是不使用会话,只需为所需的持久性信息设置cookie.

另一个解决方案是实现自己的会话处理程序:

http://php.net/manual/en/session.customhandler.php

有关自定义MySQL会话处理程序的详细演练如下:

http://phpmaster.com/writing-custom-session-handlers/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读