2

我正在为网站使用 PHP 会话,以便在用户首次登录网站时显示免责声明页面。在用户浏览会话之后,或者当他们关闭浏览器时,会话应该被自动销毁。它在除 Chrome 之外的所有浏览器中都能正常工作。经过一番研究,我发现导致了这个。如果确实是 Chrome 的错误,我该如何解决?

4

2 回答 2

3

如果浏览器关闭并且它们在没有过期时间的情况下发送,则假设会话 cookie 被删除。

您可以在第一次开始会话之前定义 session_cache_expire:

session_cache_expire(60); // expires after 60 mins

然后做 session_start();...

于 2012-09-28T20:08:51.510 回答
0

与其依赖浏览器取消 cookie,不如将其设置为相当快地过期,并通过在后续页面请求中更新 cookie 来保持会话“活动”。

<?php
session_set_cookie( 60*15 );
session_start();

此示例将 cookie 设置为在 15 分钟后过期(您可以设置不同的过期时间,具体取决于您希望用户发送页面请求的频率:或者,您可以将其设置为仅一两分钟,然后通过XHR 只是比这更频繁)。这不会让 Chrome 删除 cookie,但您至少知道它不会无限期地浮动。

于 2012-09-28T23:07:05.410 回答