在域名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安全设置,我将不得不忍受?
答案 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);