Chrome忽略跨域Cookie过期

时间:2011-11-14 03:12:43

标签: php google-chrome cookies

在域名1上,我有一个发布到域名2的表单

<form method="post" action="http://domain2.com/result.php">

域2上的脚本result.php在域2上设置一个cookie,该cookie应该持续到2038年。

setcookie('test', 'val', 2147485540, '/', '.domain2.com', false);

正在存储Cookie,但在Chrome上,过期时间设置为“当我关闭浏览器时”(换句话说,0)。在Firefox上,过期设置正确。

有没有办法解决这个问题,或者这是一个关于跨域发布的Chrome安全设置,我将不得不忍受?

1 个答案:

答案 0 :(得分:2)

它与过期有关,而与域无关。您使用的2147485540相当于Tue, 19 Jan 2038 03:45:40某些浏览器在2038年1月19日星期二03:14:07 UTC之后的日期出现问题。

这将有效:

setcookie('test', 'val', gmmktime(3, 14, 7, 1, 19, 2038), '/', '.domain2.com', false);

这不会:

setcookie('test', 'val', gmmktime(3, 14, 8, 1, 19, 2038), '/', '.domain2.com', false);