【问题标题】:Can't set a cookie in Chrome 5无法在 Chrome 5 中设置 cookie
【发布时间】:2023-03-06 01:50:02
【问题描述】:

从今天开始,我在使用刚刚更新到 v5 的 Google Chrome 时遇到了一个棘手的问题。
我的网站上正在运行一个用户登录过程。在 FF 3.6.x 和 IE 7 上一切正常,但我无法在 Google Chrome 5 中设置任何 cookie。我之所以提到 5,是因为它之前在 v4 上运行良好。

我的 PHP 脚本如下所示:

  $cook = setcookie($cookieName, $value, $expires, '/', '.'.$domain);
  var_dump($cook, isset($_COOKIE[$cookieName]));

我什至尝试了替代setrawcookie,但没有任何结果。

  $cook = setrawcookie($cookieName, $value, $expires, '/', '.'.$domain);
  var_dump($cook, isset($_COOKIE[$cookieName]));

FF 3.6.x 和 IE7 输出:

bool(true) bool(true)

而 Chrome v5 输出:

bool(true) bool(false)



很明显,我在 Google Chrome 5 中看不到这个 cookie 的踪迹。知道吗? =/

干杯,
尼古拉斯。

【问题讨论】:

  • 感谢 Imre L 和 ZZ Coder 的回答:当域参数是 IP 地址时,不要在域参数前加上点。 Chrome v5 不喜欢它:)

标签: php cookies google-chrome setcookie


【解决方案1】:

您可以通过在地址栏中输入javascript:alert(document.cookie) 来查看cookies。

Cookie 将在第二次请求时发送到服务器。 [browser request(no cookie)]->[server response(set cookie)]...[browser request(cookie, if valid)]->... 因此,您应该通过刷新测试页在 $_COOKIE 中看到 cookie。

还要检查您的参数是否正确。 (未来的时间和域是你的域)

【讨论】:

  • 嗨,我设置了一个这样的测试页面:setcookie('mycookie', 'value', 1275045629, '/', '.192.168.0.xxx');javascript:alert(document.cookie) 只显示 PHPSESSID cookie。您自己尝试过 google chrome 5 吗?
  • 删除域以查看它是否有效。 '.192.168.0.xxx' 无效。您不应该在 IP 地址中添加点。
  • 不要在 IP 前面加上点。它用于子域目的的域名。
  • 是的,这就是诀窍!非常感谢 :) 如果我使用 IP 地址,那是因为该网站正在我们的一台服务器上开发。奇怪的是,所有其他浏览器(以及“旧”chrome 版本)都不关心那个点。
【解决方案2】:

我也一样,检查你的系统日期和时间

【讨论】:

    猜你喜欢
    • 2016-02-27
    • 1970-01-01
    • 2022-09-27
    • 2021-11-03
    • 2017-02-04
    • 2020-07-18
    • 2020-06-29
    • 2011-12-27
    • 2015-05-20
    相关资源
    最近更新 更多