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

tf7tbtn2  于 2023-04-19  发布在  PHP
关注(0)|答案(3)|浏览(109)

我用以下代码在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错误,但也许我错过了一些东西?
我希望cookie永远不会在以下请求中设置,无论有多快。感谢您的任何见解。

9gm1akwq

9gm1akwq1#

已报告此问题here
通过设置路径的解决方案:

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

kzmpq1sx2#

第四个参数中的路径设置是否正确?
safari cookie issue

qeeaahzv

qeeaahzv3#

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

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

相关问题