我正在寻找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中可以正常工作。
到目前为止,我查了一下:
你对我有什么想法吗?!
干杯, 利奥
答案 0 :(得分:0)
这些只是一个疯狂的猜测,但是:
答案 1 :(得分:0)
我遇到了同样的问题。
更多的是,setcookie()在FF34,Chrome39和IE8&上工作(返回true)。 IE11在我的开发服务器上(win7 64bit,wamp,php 5.3.9),但它会在生产网站(debian,php 5.4.35)上为Chrome和IE返回false。
经过一些谷歌搜索并仔细阅读我发现的setcookie()手册(之前我曾遗漏过的内容),手册上写着:"If output exists prior to calling this function, setcookie() will fail and return FALSE."
起初我不确定If output exists prior to calling this function
究竟是什么意思,但显然应该没有输出到浏览器来设置cookie。
在我输出有问题的代码行之后,问题就消失了,代码也适用于上述浏览器(包括开发和生产服务器),以及Android上最新的FF和Chrome。