我发现在我的简单Web应用程序中,如果您单独离开页面超过大约五分钟然后重新加载页面,则调用session_id()将第二次返回不同的值。用户保持登录状态,因此会话数据将被移动到新ID,但我会根据会话ID跟踪MySQL数据库中的购物车项目,并且当ID更改时,与购物车项目的关联将丢失。
我的代码中没有任何地方可以调用session_regenerate_id()
帮助!
答案 0 :(得分:0)
您可能需要检查代码以查看是否使用带有参数的session_id(),因为这也会更改会话ID。如果没有看到代码,就很难具体解决问题或知道出现了什么问题。
答案 1 :(得分:0)
如果遇到这种情况,你可能想要检查更多的东西而且你确实使用了session_name():
警告! 会话名称不能仅包含数字,必须至少包含一个字母。
session_name('blah blah')
这两种情况都会强制每次生成一个新的会话ID。