Google Chrome(和IE)拒绝在PHP中使用setcookie方法设置我的cookie
我正在寻找有关stackoverflow的答案,但他们都无法解决我的问题。 我有一个网站托管在 在php中,我使用Google Chrome(和IE)拒绝在PHP中使用setcookie方法设置我的cookie,php,google-chrome,cookies,web,Php,Google Chrome,Cookies,Web,我正在寻找有关stackoverflow的答案,但他们都无法解决我的问题。 我有一个网站托管在 在php中,我使用 setcookie( COOKIE_AUTH, $cookie, $expiration, COOKIE_PATH, COOKIE_DOMAIN, false, true ) 使用以下变量 define( 'COOKIE_DOMAIN', 'machine' ); define( 'COOKIE_PATH', '/~lcavaill/folder/' ); define( 'CO
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中的效果与预期一样
到目前为止,我检查了:
如果客户端和服务器时间同步
如果Chrome隐私设置正常,则启用“允许设置本地数据”,并且没有例外
$\u服务器[HTTP\u主机]匹配COOKIE\u域变量
仅启用/禁用http_
将cookie路径设置为/
将过期时间设置为0
你对我有什么想法吗
干杯,
狮子座这些只是胡乱猜测,但是: 某些浏览器忽略重定向响应上的set cookie标头: 或在本地主机和ip地址上:
我也有同样的问题 更重要的是,setcookie在我的开发服务器win7 64位、wamp、php5.3.9上的FF34、Chrome39和IE8&IE11上返回true,但在生产站点debian上返回false,Chrome和IE的php5.4.35 在谷歌搜索和仔细阅读手册后,我发现了一些我之前遗漏的东西,手册上说:如果调用此函数之前存在输出,setcookie将失败并返回FALSE 起初,我不确定调用此函数之前是否存在输出的确切含义,但显然不应该向浏览器输出以设置cookie
在我将有问题的代码行移到任何输出之前,问题就消失了,代码可以在上面的浏览器上工作,包括开发和生产服务器,以及Android上最新的FF和Chrome。当您没有明确设置cookie路径时,它可以工作吗?也就是说,检查是否有像setcookie'test','1'这样简单的东西;有效。@Olaf不设置路径不会改变任何内容。一个简单的请求可以工作并设置cookie测试:Set cookie:blabla=lcavaile%7C1335425726%7Cab4a9752133970811c50ca69ccfa6206;expires=Thu,2012年4月26日07:35:26 GMT;域=机器;httponly Set Cookie:test=1我建议您在Chrome中安装Edit this Cookie扩展,然后逐步更改代码中的Cookie定义,并检查发生的情况以及不再设置Cookie的时间。它会给你很多有用的信息。