1

我们试图编写一个附属跟踪系统。

用户单击服务器 A 上的 PHP 脚本的链接,该脚本放置了一些带有跟踪信息的 cookie。然后脚本将它们重定向到服务器 B 上的登录页面。一旦用户到达目标页面,就会使用先前设置的 cookie 加载由 PHP 代码生成的 javascript。

这一切都适用于 Safari、FF 和 IE9。

我们在 IE8 上遇到了一个问题,其中生成 javascript 的 php 仅被发送回 cookie,这些 cookie 是在不使用 和 之外的任何参数的情况下设置namevalue。被赋予过期日期的 Cookie 不会被退回。我们最终通过将 cookie 路径设置为 来解决这个/问题,即使两个 php 脚本(setter 和 getter)都在同一路径中。但是这个修复只对 IE8 有效,我们在 IE6 和 IE7 上仍然有同样的问题。

此外,如果我们直接调用 getter 脚本(而不是从服务器 B 上的脚本标签),那么一切都会按预期工作。

我们还尝试将 IE 隐私设置设置为最低设置。

我们如何设置 cookie 的示例

 <?PHP
 setcookie($key,$val);//this works

 //this doesn't
 setcookie('COOKIE', json_encode($info), time()+259200000);
4

2 回答 2

0

IE8 不支持其他浏览器使用的某些日期格式,即使在 IE7 和 IE9 中也不支持,您可以查看日期格式,否则将设置的 cookie 代码粘贴在这里,我们可以为您检查。

于 2011-12-22T13:48:24.277 回答
0

好的,所以为 IE7 修复了排序器 cookie 时间,但不适用于 IE6

对于 IE6,我们需要使用P3P标头,我将它们放在写入 cookie 和读取 cookie 的脚本中。

<?PHP
header('Cache-Control: public, max-age=0, must-revalidate');
header('P3P: policyref="/p3p.xml", CP="NOR NOI DSP COR ADM OUR PHY"');

我们可能只在编写 cookie 的脚本上需要它,但现在它可以工作了,所以如果我没有的话,我不会弄乱它。

于 2011-12-26T10:53:56.263 回答