在IE8中将Cookie过期设置为0的问题

时间:2009-12-27 01:41:54

标签: php cookies internet-explorer-8

我发现IE8在将cookie过期设置为0方面存在一个相当重要的问题(以便在关闭浏览器时将用户注销)。似乎每个新选项卡或窗口都被计为新会话,因此如果用户在新选项卡/窗口中打开网站上的页面,他们必须再次登录,除非他们选择了保持登录的选项,这使得cookie持久且不会导致任何问题。必须有一种方法可以使这项工作像过去一样,并且在过去一直没有强迫我的用户即使在关闭浏览器后仍然保持登录状态。如果重要的话,我正在设置pHP的饼干:

setcookie("username",$username,0," ",".example.com");

1 个答案:

答案 0 :(得分:0)

问题可能是路径字段中的空间。此属性应该是未指定的,或者应该是/ home之类的有效路径。尝试指定一个空字符串('')而不是空格。

也可以是缓存内容,即登录页面可能看起来未经身份验证,因为内容已缓存。 php中的session_cache_limiter('nocache')会指示浏览器不要缓存任何内容(使用会话时),这与设置相同:

Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

要省略路径,您可以将''(空字符串)或null传递给该参数的setcookie。或使用“/”之类的东西来表示整个网站。

除非用户选择“文件 - >新会话”或明确运行iexplore.exe -nomerge,否则ie8窗口和标签共享相同的会话。