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