用PHP清除Cookie在Safari中的行为很奇怪


Clearing Cookie with PHP behaves strange in Safari

我用下面的代码在PHP中删除一个cookie:

setcookie('test', null, -1, '/');

它在所有浏览器中都能很好地工作,除了Safari。如果完成得足够快,Safari的后续请求将此Cookie发送给web服务器。

我能想到的最简单的例子:

<?php
setcookie('test', null, -1, '/');
print_r( $_COOKIE );
?>

在浏览器中快速按F5。有时您会看到值被删除的cookie。《纲领》似乎并不重要。我在iPhone、Safari (Windows)和Safari (Mac)上都得到了这个结果。对我来说,这看起来像是Safari浏览器的bug,但也许我遗漏了什么?

我希望cookie永远不会在后续请求中设置,无论多快。谢谢你的真知灼见

此问题已在此处报告。

设置路径的解决方案:

setcookie('testcookie', 'cookiesetting temporary', time()+3600, '/path/'); // set 
setcookie('testcookie', '', time()-3600, '/path/'); // delete

第四个参数设置的路径是否正确?

safari cookie问题

我也有同样的问题。我是这样解决的,
设置和删除cookie 时,设置路径和域

setcookie("test_cookie", "test value", time() + 3600, "path", "domain");  // set cookie
setcookie("test_cookie", "", time() - 3600, "path", "domain");  // delete cookie