从PHP,我无法让浏览器删除cookie。为了解决这个问题,我创建了一个简单的测试页面:
// Set cookie named MrPants with value foo to expire at end of session
setcookie("MrPants", "foo", 0);
加载该页面后,我在Firefox cookies菜单中看到了cookie。到目前为止,非常好。
然后我按照example #2 here删除Cookie:
// Set that cookie's expires time in the past
setcookie("MrPants", "", time() - 3600);
这没有效果。我也尝试过指定路径;没有变化。
在Firebug中,我在响应标题中看到以下内容:
Set-Cookie ZDEDebuggerPresent=php,phtml,php3; path=/
MrPants=deleted; expires=Tue, 25-Aug-2009 15:27:46 GMT; path=/some/path
我在这里缺少什么?
答案 0 :(得分:1)
嗯,实际上正在删除cookie。我似乎在Firefox 3.5.10(Fedora Linux)中发现了一个怪癖。
我进入了偏好设置>隐私>删除单个cookie并搜索cookie名称。当它被添加时,它会出现在该窗口中,但是当它被删除时,它不会从该窗口中消失。您必须关闭窗口,重新打开它,然后再次搜索cookie。
更糟糕的是,如果cookie被删除并在同一个脚本中重新添加,它会显示新的cookie,而旧的cookie不会消失 - 多个具有相同名称和路径的cookie!那真的吓坏了我。
我没有在此提出错误,但如果有其他人愿意,请成为我的客人。
答案 1 :(得分:0)
检查域名。您可以拥有多个具有相同名称和不同域的cookie(例如,一个在home.foo.com上设置,另一个在根.foo.com上)。删除一个不会删除另一个。