Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google Chrome(和IE)拒绝在PHP中使用setcookie方法设置我的cookie_Php_Google Chrome_Cookies_Web - Fatal编程技术网

Google Chrome(和IE)拒绝在PHP中使用setcookie方法设置我的cookie

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

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

在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中的效果与预期一样

到目前为止,我检查了:

如果客户端和服务器时间同步 如果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的时间。它会给你很多有用的信息。