【发布时间】:2012-07-21 22:05:28
【问题描述】:
我发现在我的简单 Web 应用程序中,如果您将页面放置超过大约 5 分钟,然后重新加载页面,则第二次调用 session_id() 将返回不同的值。用户保持登录状态,因此会话数据被移动到新 ID,但我根据会话 ID 跟踪 MySQL 数据库中的购物车项目,当 ID 更改时,与购物车项目的关联丢失。
我的代码中没有任何地方调用过 session_regenerate_id()
救命!
【问题讨论】:
-
你有什么样的主机?共享服务器?
-
我假设您相应地调用
session_start()- 即在页面加载之前。 -
您可能应该查看会话到期时间范围“session.gc_maxlifetime”的值。可能太短了。
-
@MikeB 它在共享服务器上,是的
-
@JasonMcCreary 是的,我在页面加载之前调用 session_start。值得注意的是,当ID号发生变化时,用户并没有退出,就好像在调用session_regenerate_id()一样,但是我仔细检查了代码,我们没有在任何地方使用该函数。
标签: php session session-cookies