首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >firefox自动保存会话

firefox自动保存会话
EN

Stack Overflow用户
提问于 2012-12-16 13:52:31
回答 2查看 119关注 0票数 0

可能重复: Firefox session cookies

我有这个密码

代码语言:javascript
复制
session_start();

$_SESSION['login'] = "bla";

var_dump($_SESSION);

如果我在火狐中执行这个页面,然后从脚本中删除这一行$_SESSION['login'] = "bla";,然后关闭并重新打开浏览器,firefox向我展示:["login"]=> string(3) "bla"

也就是说,firefox在关闭浏览器后保存会话数据。为什么会发生这种事?

这种情况只发生在firefox中,其他浏览器都按预期工作,即结果是空数组。

EN

回答 2

Stack Overflow用户

发布于 2012-12-16 14:05:45

你确定你在测试脚本的正确版本吗?您可能需要在测试脚本中添加其他内容以确保,例如,在一天中的当前时间进行回显。

这里可能起作用的一种情况是,浏览器的所有实例共享同一个cookie jar。为了强制浏览器删除会话cookie,必须关闭所有窗口和选项卡。在“现实生活”中,这从来不是一个问题,但当您似乎无法被注销时,它常常会让开发人员抓狂!

票数 0
EN

Stack Overflow用户

发布于 2012-12-16 14:38:00

火狐无法保存$_SESSION。$_SESSION完全是一个服务器端变量。它并不适用于Firefox,只是它将设置一个会话cookie,该cookie仅由php用来查找服务器上正确的用户会话。

您之所以获得["login"]=> string(3) "bla",是因为您在第一次运行时就设置了它。这样做:

首先运行脚本

代码语言:javascript
复制
session_start();

$_SESSION['login'] = "bla";

var_dump($_SESSION);

然后从脚本中删除$_SESSION['login'] = "bla";行并运行它。它仍然应该显示登录键是在会话变量中设置的。然后运行一个单独的脚本:

代码语言:javascript
复制
session_start();

$_SESSION['login'] = null;
// OR 
// unset($_SESSION['login']);

var_dump($_SESSION);

然后尝试查看会话变量的值,然后“登录”键的值就会消失。

我想说的是:如果您在会话中设置了某个内容,它将保持不变,并且不必每次脚本运行时都设置它。要从会话变量中删除值,必须显式地删除它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13901952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档