我用下面的代码在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