为什么我不能删除这个cookie?

时间:2010-08-25 15:34:43

标签: php

从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

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

嗯,实际上正在删除cookie。我似乎在Firefox 3.5.10(Fedora Linux)中发现了一个怪癖。

我进入了偏好设置>隐私>删除单个cookie并搜索cookie名称。当它被添加时,它会出现在该窗口中,但是当它被删除时,它不会从该窗口中消失。您必须关闭窗口,重新打开它,然后再次搜索cookie。

更糟糕的是,如果cookie被删除并在同一个脚本中重新添加,它会显示新的cookie,而旧的cookie不会消失 - 多个具有相同名称和路径的cookie!那真的吓坏了我。

我没有在此提出错误,但如果有其他人愿意,请成为我的客人。

答案 1 :(得分:0)

检查域名。您可以拥有多个具有相同名称和不同域的cookie(例如,一个在home.foo.com上设置,另一个在根.foo.com上)。删除一个不会删除另一个。