我不敢相信这让我很难过但是......
http://dev.mysite.com/cookie.php的完整代码为:
<?php
setcookie("foo", "bar", time()+2629743, "/", ".mysite.com");
var_dump($_COOKIE);
?>
http://dev.mysite.com/cookie2.php的完整代码为:
<?php
var_dump($_COOKIE);
?>
我打开IE9。我转到第一个网址。输出是:
array(0){}
不确定是什么,在IE开发工具中查看响应标头清楚地显示以下内容:
Set-Cookie: foo=bar; expires=Thu, 08-Dec-2011 05:13:17 GMT; path=/; domain=.mysite.com
我刷新页面。输出是:
array(1){[“foo”] =&gt; string(3)“bar”}
好的,所以我的饼干。再一次,在dev工具中查看cookie信息告诉我:
NAME foo VALUE吧 DOMAIN mysite.com 路径/ EXPIRES 08/12/2011 05:24:00
万。现在我关闭IE,重新打开并转到第二个URL。哪个应该只丢弃所有cookie内容。输出是:
array(0){}
显然我在某处非常愚蠢,但在哪里?
答案 0 :(得分:0)
关于问题的第一部分:
在第一次执行PHP期间,在PHP 中没有设置$_COOKIE
,它只是简单地传达给浏览器。这就是为什么它第二次显示,因为你的浏览器将它发送回PHP,而PHP正在$_COOKIE
加载它。
您是否可以编辑帖子以显示Cookie中域文本的实际示例,或者至少使虚构域保持一致?
编辑:从开发工具中的实际Cookie列表中查看域名,我按照您在帖子中列出的确切步骤进行操作。关闭IE8后,我回到了第一页,cookie信息就在那里。
你的问题出在IE9的某个地方。是否有javascript设置/ clobbering相同的cookie?在IE9安装中,其他网站的cookie是否会发生这种损失?