可能重复: Firefox session cookies
我有这个密码
session_start();
$_SESSION['login'] = "bla";
var_dump($_SESSION);如果我在火狐中执行这个页面,然后从脚本中删除这一行$_SESSION['login'] = "bla";,然后关闭并重新打开浏览器,firefox向我展示:["login"]=> string(3) "bla"
也就是说,firefox在关闭浏览器后保存会话数据。为什么会发生这种事?
这种情况只发生在firefox中,其他浏览器都按预期工作,即结果是空数组。
发布于 2012-12-16 14:05:45
你确定你在测试脚本的正确版本吗?您可能需要在测试脚本中添加其他内容以确保,例如,在一天中的当前时间进行回显。
这里可能起作用的一种情况是,浏览器的所有实例共享同一个cookie jar。为了强制浏览器删除会话cookie,必须关闭所有窗口和选项卡。在“现实生活”中,这从来不是一个问题,但当您似乎无法被注销时,它常常会让开发人员抓狂!
发布于 2012-12-16 14:38:00
火狐无法保存$_SESSION。$_SESSION完全是一个服务器端变量。它并不适用于Firefox,只是它将设置一个会话cookie,该cookie仅由php用来查找服务器上正确的用户会话。
您之所以获得["login"]=> string(3) "bla",是因为您在第一次运行时就设置了它。这样做:
首先运行脚本
session_start();
$_SESSION['login'] = "bla";
var_dump($_SESSION);然后从脚本中删除$_SESSION['login'] = "bla";行并运行它。它仍然应该显示登录键是在会话变量中设置的。然后运行一个单独的脚本:
session_start();
$_SESSION['login'] = null;
// OR
// unset($_SESSION['login']);
var_dump($_SESSION);然后尝试查看会话变量的值,然后“登录”键的值就会消失。
我想说的是:如果您在会话中设置了某个内容,它将保持不变,并且不必每次脚本运行时都设置它。要从会话变量中删除值,必须显式地删除它。
https://stackoverflow.com/questions/13901952
复制相似问题