PHP会话ID自动重新生成

时间:2012-07-23 16:18:32

标签: php session session-cookies

我发现在我的简单Web应用程序中,如果您单独离开页面超过大约五分钟然后重新加载页面,则调用session_id()将第二次返回不同的值。用户保持登录状态,因此会话数据将被移动到新ID,但我会根据会话ID跟踪MySQL数据库中的购物车项目,并且当ID更改时,与购物车项目的关联将丢失。

我的代码中没有任何地方可以调用session_regenerate_id()

帮助!

2 个答案:

答案 0 :(得分:0)

您可能需要检查代码以查看是否使用带有参数的session_id(),因为这也会更改会话ID。如果没有看到代码,就很难具体解决问题或知道出现了什么问题。

答案 1 :(得分:0)

如果遇到这种情况,你可能想要检查更多的东西而且你确实使用了session_name():

  1. 来自PHP Online Manuals
  2.   

    警告! 会话名称不能仅包含数字,必须至少包含一个字母。

    1. 确保在session_name()参数中没有空格,如
    2.   

      session_name('blah blah')

      这两种情况都会强制每次生成一个新的会话ID。