当会话结束时,IE中的PHP持久性cookie正在消失

时间:2011-11-07 19:06:15

标签: php internet-explorer cookies

我不敢相信这让我很难过但是......

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){}

显然我在某处非常愚蠢,但在哪里?

1 个答案:

答案 0 :(得分:0)

关于问题的第一部分:

在第一次执行PHP期间,在PHP 中没有设置$_COOKIE,它只是简单地传达给浏览器。这就是为什么它第二次显示,因为你的浏览器将它发送回PHP,而PHP正在$_COOKIE加载它。

您是否可以编辑帖子以显示Cookie中域文本的实际示例,或者至少使虚构域保持一致?

编辑:从开发工具中的实际Cookie列表中查看域名,我按照您在帖子中列出的确切步骤进行操作。关闭IE8后,我回到了第一页,cookie信息就在那里。

你的问题出在IE9的某个地方。是否有javascript设置/ clobbering相同的cookie?在IE9安装中,其他网站的cookie是否会发生这种损失?