【问题标题】:safari cookie issue野生动物园饼干问题
【发布时间】:2012-07-20 04:10:09
【问题描述】:

我正在为此拉扯头发。它适用于 chrome 和 Firefox,但不适用于 safari。我做错了什么?

我正在设置一个临时 cookie,然后检查它是否已设置。当我从 safari 清除所有 cookie,然后运行此文件时,它认为 cookie 仍然存在。

这里是代码

setcookie("testcookie", 'cookiesetting temporary');
if(isset($_COOKIE['testcookie'])){
    echo "cookie set":
}else{
    echo "no cookie set";
}

仅在 safari 中,禁用 cookie 并删除所有 cookie 后,当我运行上面的代码时,它仍然会回显 cookie 集。

为了确定,我还在资源下查看了 safari 中的开发工具,但我没有看到那里的 cookie。

我在这里错过了什么?

【问题讨论】:

  • 如果您想知道浏览器是否发送了 cookie,请检查请求标头。除非您还没有验证您的 Safari 不再发送 cookie,否则我会相信 PHP 会说 cookie 在那里。就是这么简单。调试时,请在正确的位置进行调试。找出事实,而不仅仅是环顾四周(比如说前 5 分钟,环顾四周是可以的,但不能再久了。在那之后,即使你需要先了解整个 HTTP 标准,也要直奔事实。无论如何这都是值得的。 )

标签: php cookies safari cross-browser


【解决方案1】:

我在使用 Safari 时遇到了同样的问题(无法取消设置 cookie)。 你应该解决设置路径

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

希望这可行;)

【讨论】:

    【解决方案2】:

    仅在客户端清除它们并不是测试这个的正确方法..您是否尝试过实际“取消设置”cookie 服务器端?

    【讨论】:

    • 试过这个 setcookie("testcookie", 'cookiesetting temporary', time()-3600);还是不行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多