2010-08-25 56 views
-1

从PHP,我无法让浏览器删除一个cookie。追下去的问题,我创建了一个简单的测试页面,只是没有这样的:为什么我不能删除这个cookie?

// Set cookie named MrPants with value foo to expire at end of session 
setcookie("MrPants", "foo", 0); 

加载该页面后,我看到在我的Firefox饼干菜单饼干。到现在为止还挺好。

然后我跟着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

尝试使用远远超过的cookie。就像'mktime(1,1,1,1,1,1,1980)'的时间一样...... – ircmaxell 2010-08-25 15:37:55

回答

1

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

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

更糟的是,如果cookie被删除并重新添加到同一个脚本中,它会显示新的cookie出现,而旧的cookie不会消失 - 具有相同名称和路径的多个Cookie!那真让我害怕。

我还没有提交这个错误,但如果其他人想成为我的客人。

0

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

相关问题