Firefox14.0.1中PHP cookie的删除

Firefox14.0.1中PHP cookie的删除,php,firefox,cookies,Php,Firefox,Cookies,上面的代码在Chrome中运行良好,不会删除FireFox 14.0.1中的cookie。我想知道为什么会这样,如果有人遇到过同样的问题,或者当这些cookie过期时,我遇到的难题是否有解决方案……根据: session_destroy()销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。。。如果使用cookie传播会话id(默认行为),则必须删除会话cookie。setcookie()可用于此目的 很难解释为什么Chrome会扰乱cookie

上面的代码在Chrome中运行良好,不会删除FireFox 14.0.1中的cookie。我想知道为什么会这样,如果有人遇到过同样的问题,或者当这些cookie过期时,我遇到的难题是否有解决方案……

根据:

session_destroy()销毁与当前会话关联的所有数据。它不会取消设置与会话关联的任何全局变量,也不会取消设置会话cookie。。。如果使用cookie传播会话id(默认行为),则必须删除会话cookie。setcookie()可用于此目的

很难解释为什么Chrome会扰乱cookie,但是Chrome的行为似乎异常,而不是Firefox

但是,指向一个死会话的旧cookie的存在应该不会有问题。服务器应该创建一个新会话(会话数据为空),并发回一个指向新会话的cookie


事实上,在客户端保存未加密的用户和密码可能是不明智的。你确定你需要吗?将该信息存储在服务器端可能更常见,客户端只提供会话cookie。

只需将cookie过期时间设置为1,如下所示:

<?php 

session_start();

$_SESSION['logged_in'] = false;

setcookie("dsgpassword127", $password, time()-3600);  /* expire the cookie */
setcookie("dsgemail127", $email, time()-3600);  /* expire the cookie */

session_destroy();

header("location: index.php");

?>

基本上,第三个参数是自epoch以来的秒数。1将其设置为纪元后1秒,因此无需担心
时间()。检查这对firefox是否有帮助。

我卸载了firefox并重新安装了最新版本15.0。这一次,当FireFox要求我自动记住密码时,我请求它不要这样做。现在浏览器的反应正常了。我怀疑14.0.1中的“记住密码”功能也是如此。

这似乎也不会删除cookie。我决定同意你的两个建议。我很困惑…我刚刚在我的ff 14.0.1中试用过,效果很好..奇怪..我唯一能想到的是,如果你碰巧有任何ff插件,可能是因为某种原因搞砸了..我禁用了所有的加载项,然后再试一次。这一定是FireFox本身的技术问题。甚至在IE中也可以使用:|
setcookie("dsgpassword127", $password, 1);  /* expire the cookie */
setcookie("dsgemail127", $email, 1);  /* expire the cookie */