2

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

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

帮助!

4

2 回答 2

0

如果遇到这种情况,您可能还想检查几件事,并且您确实使用了 session_name():

  1. 来自PHP 在线手册

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

  1. 确保您的 session_name() 参数中没有空格,例如

session_name('废话')

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

于 2014-10-02T08:39:52.863 回答
0

您可能需要检查您的代码,看看您是否正在使用带有参数的 session_id(),因为这也会更改会话 ID。如果不查看代码,很难具体说明修复或知道出了什么问题。

于 2012-07-24T17:54:11.957 回答