php - 同时在两个 PHP 脚本中使用相同的 session ID

标签 php apache file session session-cookies

我偶尔发现 PHP session 有一个奇怪的问题。
当我使用相同的 session ID 运行两个 PHP 脚本时,第二个脚本会卡住,直到第一个脚本完成。
我猜这是因为试图打开同一个 session 存储文件两次。但可能我不对。
在正常的站点工作中,您永远不会发现这种效果,因为用户通常不会同时打开两个或更多页面。
但是,如果您尝试使用 file_get_contents() 获取同一站点的某个页面的内容,则会遇到此问题。
此外,我通过上下文复制了我的 cookie,因此 file_get_contents() 尝试重新打开与调用脚本中已打开的 session 相同的 session 。
结果,我卡住了长时间运行的脚本(大约 5-10 分钟),这也使我无法使用相同的 sessionid/登录名打开同一站点的任何新页面。
我该如何解决这个问题?你有没有看到任何漂亮的解决方案?

最佳答案

是的,这称为“ session 锁定”,在 PHP 中很常见。

一个解决方案不是不使用 session ,只是为您需要的持久信息设置 cookie。

另一种解决方案是实现您自己的 session 处理程序:

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

有关自定义 MySQL session 处理程序的详细演练在此处:

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

关于php - 同时在两个 PHP 脚本中使用相同的 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982654/

相关文章:

php - 如何使用 PHP 发送文本消息/SMS?

PHP 在数组中存储对象引用

php - 在 SugarCRM 自定义字段中添加值的 Hook

java - 如何定义自己的 map 并减少类(class)

python - 如何将 python 中 Logger 对象的输出发送到文件?

php - 如何从时间字符串创建 DateInterval

javascript - .htaccess文件不加载js和css

php将json数组合并为一个数组

java - 读取和到达文件末尾时 ObjectInputStream 出现异常

php - htaccess 意外重定向到文件夹