2015-07-12 46 views
1

怪我删除Cookie PHP中使用下面的代码:清除Cookie的使用PHP的行为在Safari

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

它的工作原理相当不错,在所有的浏览器,但在Safari。如果速度够快,Safari的后续请求会将此Cookie发送到网络服务器。

我能想到的最简单的例子:在浏览器

<?php 

setcookie('test', null, -1, '/'); 
print_r($_COOKIE); 

?> 

按F5快捷。有时候你会看到cookie被删除的值。平台似乎没有关系。我在iPhone,Safari(Windows)和Safari(Mac)上得到了这个结果。对我来说,它看起来像一个Safari错误,但也许我在这里失去了一些东西?

我想不要在以下请求中设置cookie,无论多快。感谢您的任何见解。

+0

我也许偶然发现了同样的问题。会发生什么是我们的Web应用程序有时会获取cookie值被“删除”的请求(这是PHP在删除Cookie时设置的值)。除了您提到的狩猎之外,有时用户代理似乎是Googlebot。 – Fusselwurm

+0

你有没有想过这个问题?我遇到了完全相同的情况。它只发生在我们的一小部分用户身上,但对于某些用户而言,这种情况始终发生,几乎所有用户都使用旧版本的Safari。无法在OSX和Safari的任何测试版本上内部复制它。 – John

回答

0

此问题已经被举报here

通过设定路径解决方案:

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

我认为这是一个不同的问题。在我的例子中,cookie被删除,而不是立即。除了我试图将脚本移动到/ test /文件夹并相应地调整路径。仍然是同样的问题。 – piece

0

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

safari cookie issue

+0

我需要cookie对整个域有效,因此/作为路径。有什么问题呢?只需在这里[官方参考](http://php.net/manual/en/function.setcookie.php)。 – piece