我使用以下代码删除PHP中的cookie:
setcookie('test', null, -1, '/');
除了在Safari中,它在所有浏览器中都能很好地工作。如果做得足够快,Safari的后续请求会将此Cookie发送到网络服务器。
我能想到的最简单的例子:
<?php
setcookie('test', null, -1, '/');
print_r( $_COOKIE );
?>
在浏览器中快速点击F5。有时您会看到已删除值的cookie。平台似乎并不重要。我在iPhone,Safari(Windows)和Safari(Mac)上得到了这个结果。对我来说,它看起来像一个Safari bug,但也许我在这里错过了什么?
我希望cookie永远不会在以下请求中设置,无论多快。感谢您的任何见解。
答案 0 :(得分:0)
此问题已报告here。
通过设置路径解决方案:
setcookie('testcookie', 'cookiesetting temporary', time()+3600, '/path/'); // set
setcookie('testcookie', '', time()-3600, '/path/'); // delete
答案 1 :(得分:0)
您是否在第四个参数中正确设置了路径?