PHP会话不存储数据

时间:2009-10-28 13:32:27

标签: php session

HI,

如果我正在计算机001上查看我的页面并且我注销会话并移动到计算机002并登录到会话由于某种原因我没有看到我的数据它看起来像是如何与我完成了我的课程。

是否有人知道为什么数据没有保存给用户?

我该怎么办呢?

5 个答案:

答案 0 :(得分:4)

您已注销...不是与会话生命周期绑定的会话范围,即登录 - >退出?

您需要持久状态:使用数据库。但是不要将持久状态与瞬态会话混淆; - )

答案 1 :(得分:2)

每个会话保存数据,当您注销时,会破坏会话和所有相关数据。 你必须自己存储它(数据库,文件......)。

答案 2 :(得分:2)

来自PHP文档:“访问您网站的访问者被分配了一个唯一的ID,即所谓的会话ID。这可以存储在用户端的cookie中,也可以在URL中传播。”

当您退出时,该Cookie已过期。

即使您没有退出,也没有销毁cookie,当您转移到第二台计算机时,cookie不会跟随您。因此,PHP无法将新会话与旧会话相关联。如果你需要链接你所谓的“会话”(而不是PHP $ _SESSION),那么你需要自己存储所有这些数据。 PHP不会为你做这件事。

如果您具有显式注销功能,则可以在用户注销时将$ _SESSION变量写出到数据库。如果您需要用户能够在没有明确注销的情况下离开并稍后恢复,那么您可能需要在用户访问的每个页面上保存所有这些信息。

答案 3 :(得分:1)

除非您在每次用户登录时将会话存储在数据库中并重新填充$ _SESSION,否则他们不会在计算机之间跟踪您。

答案 4 :(得分:0)

这就是它,会议不会从不同的IP来源延续。他们也会在一段时间后过期。如果您想从登录/注销程序中携带数据,则需要将其存储在数据库中。

相关问题