【发布时间】:2012-09-24 10:04:58
【问题描述】:
我检测到与其他用户已经发现的相同的东西 - Storing objects in PHP session:
如果我在$_SESSION['user'] 中存储一个序列化对象(即字符串),则该对象会在下一页调用时消失。这不是我的问题,因为如果我使用与 user 不同的东西作为键,一切正常。有什么魔法吗?这是保留的吗?
$_SESSION['user'] 变为 false。密钥仍然存在,但值为false。我不太确定,但我认为在第二次调用后该值会变为 false。
有什么想法或提示吗?
【问题讨论】:
-
您确定变量没有在代码的其他部分重置吗?它与另一个键一起使用的事实强烈表明了这一点。
-
你是在使用普通的 php 还是你还使用了一些可能会覆盖会话存储中的东西的框架?
-
不确定出了什么问题,但我想我曾经遇到过类似的事情。不确定它是否是 $_SESSION['user'] 但我的会话变量也丢失了。检查您是否在代码中的某处使用了变量 $user 。如果我记得在我的情况下是这样的。如果您在代码中的某处发现变量 $user ,请尝试将其更改为其他内容。我不知道这是什么原因,但也许这是你的问题。并检查其他内容,如上述用户建议。
-
可能是一个愚蠢的想法,但这里是......你有没有把 session_start() 放在页面的顶部。也许您将错误报告调低到看不到它的程度?
-
是的,这就是我想说的。 “所以 $_SESSION['user'] = $user 会导致与 $_SESSION['user2'] = $user2 相同的问题。”但是就像有人在他的回答中建议的那样,如果不是,请尝试将 session_start 放在顶部。也许这是一个原因。当我遇到这个“问题”时,我可能不记得我把这个 session_start 放在哪里了。希望它现在对你有用。
标签: php session session-variables