繁体   English   中英

PHP会话不存储数据

[英]PHP session not storing data

假设我在计算机001上查看我的页面,并且退出会话并移至计算机002并由于某种原因登录到该会话,但我看不到我的数据,这似乎与我的工作方式有关我的会议。

有谁知道为什么数据没有保存到用户?

我该如何解决呢?

您已经注销...会话的作用域是否不受会话生存期的限制,即登录->注销?

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

数据是按会话保存的,当您注销时,将销毁该会话以及所有关联的数据。 您必须自己存储(数据库,文件等)。

从PHP文档中:“访问您的网站的访问者被分配了一个唯一的ID,即所谓的会话ID。它要么存储在用户端的Cookie中,要么在URL中传播。”

当您注销时,该cookie已过期。

即使您没有注销,也破坏了cookie,但是当您移动到第二台计算机时,cookie也不会跟随您。 因此,PHP无法将新会话与旧会话链接。 如果需要链接被称为“会话”的内容(与PHP $ _SESSION相反),则需要将所有这些数据存储在自己的某个位置。 PHP不会为您做到这一点。

如果您具有显式注销功能,则可以在用户注销时将$ _SESSION变量写出到数据库中。 如果您需要用户能够漫游而又无需显式注销即可稍后恢复,则可能需要将所有这些信息保存在用户访问的每个页面上。

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

就是这样,会话不会从不同的IP来源继续进行。 它们也会在一定时间后过期。 如果要从登录/注销过程中继承数据,则需要将其存储在数据库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM