【问题标题】:Google Chrome (and IE) refusing to set my cookie with method setcookie in PHPGoogle Chrome(和 IE)拒绝使用 PHP 中的 setcookie 方法设置我的 cookie
【发布时间】:2012-04-26 06:24:31
【问题描述】:

我正在寻找有关 stackoverflow 的答案,但他们都无法解决我的问题。 我有一个网站托管在http://machine/~lcavaill/folder/

在 php 中我使用

setcookie( COOKIE_AUTH, $cookie, $expiration, COOKIE_PATH, COOKIE_DOMAIN, false, true )

具有以下变量

define( 'COOKIE_DOMAIN', 'machine' );
define( 'COOKIE_PATH', '/~lcavaill/folder/' );
define( 'COOKIE_AUTH', 'foobar' );
$expiration = time() + 300;

在查看响应标头时,我肯定会找到 Set-Cookie 标头

Set-Cookie:test=lcavaille%7C1335420792%7C44baaa2b2eb43cfb8ab2d66f74afd11e; expires=Thu, 26-Apr-2012 06:13:12 GMT; path=/~lcavaill/folder/; domain=machine; httponly

但是对于另一个页面上的下一个请求,cookie 没有设置,我在 Chrome(或 IE)的任何地方都找不到它,但它在 Firefox 中按预期工作。

到目前为止我检查过:

  1. 如果客户端和服务器时间同步
  2. 如果 Chrome 隐私设置正常(允许设置本地数据且无例外)
  3. $_SERVER["HTTP_HOST"] 匹配 COOKIE_DOMAIN 变量
  4. 启用/禁用 http_only
  5. 将 cookie 路径设置为 /
  6. 将过期时间设置为 0

你对我有什么想法吗?!

干杯, 狮子座

【问题讨论】:

  • 不显式设置cookie路径是否有效?即,检查是否像 setcookie('test', '1'); 这样简单工作。
  • @Olaf 不设置路径不会改变任何东西。一个简单的请求就可以工作并设置一个 cookie 测试:Set-Cookie: blabla=lcavaille%7C1335425726%7Cab4a9752133970811c50ca69ccfa6206; expires=Thu, 26-Apr-2012 07:35:26 GMT; domain=machine; httponly Set-Cookie: test=1
  • 我建议您在 Chrome (chrome.google.com/webstore/detail/…) 中安装“编辑此 cookie”扩展程序,然后逐步更改代码中的 cookie 定义并检查 cookie 发生的情况和时间不再设置。它会给你很多有用的信息。

标签: php google-chrome cookies web


【解决方案1】:

这些只是一个疯狂的猜测,但是:

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。

    更重要的是,setcookie() 在我的开发服务器(win7 64bit,wamp,php 5.3.9)上的 FF34、Chrome39 和 IE8 和 IE11 上工作(返回 true),但它会在生产站点(debian)上返回 false , php 5.4.35) 适用于 Chrome 和 IE。

    经过一番谷歌搜索并仔细阅读 setcookie() 手册后,我发现(我之前错过了一些东西)手册上写着:"If output exists prior to calling this function, setcookie() will fail and return FALSE."

    起初我不确定If output exists prior to calling this function 到底是什么意思,但显然浏览器不应该有任何输出来设置cookie。

    在我将有问题的代码行移到任何输出之前,问题就消失了,代码可以在上述浏览器(开发和生产服务器)以及最新的 FF 和 Android 上的 Chrome 上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2018-04-09
      • 1970-01-01
      • 2012-03-04
      • 2013-04-22
      相关资源
      最近更新 更多