Chrome 在关闭/退出时未清除会话 COOKIE


Chrome not clearing SESSION COOKIES on close/exit

我正在使用以下内容在本地主机上开发一个应用程序:

谷歌浏览器 33.0.1750.154 m

XAMPP 版本 1.8.3

我已经使用这些了一段时间了,今天突然之间,当我关闭浏览器(所有窗口)时,Chrome 无法清除session cookies,即使在我重新启动机器后,session cookies仍然从上次会话开始设置。

我的页面顶部有以下代码:

<?php
session_start();
if(!isset($_SESSION['userID']))
{
        echo "<script>alert('Username does not exist')</script>";
        echo '<script type="text/javascript"> window.location="login.html";</script>';
        exit(1);
}
?>

这工作正常,在浏览器关闭后将我重定向到登录页面,直到几个小时前。

注意:

测试了IE10,IE11和FF,它们没有表现出相同的行为,它们正在按预期清除session cookies

我还验证了

从我离开的地方继续...

设置处于未选中状态。

有人知道这里发生了什么以及如何解决它吗?

感謝KevinB為我指出了正確的方向。

事实证明,这不是我想象的 cookie 设置,我最终将其设置为:

允许设置本地数据(推荐)

我记得

Google NOW

最近安装在我的机器上,当我没有打开浏览器时,我允许它在后台运行,我相信这是我的会话cookie未被清除的罪魁祸首。

最终解决此问题的是取消选中:

关闭

谷歌浏览器后继续运行后台应用

系统部分下的设置。

希望这有助于节省一些麻烦....

"继续运行后台应用"选项可能有效,但我们不能指望用户(客户端)使用他们的 Chrome 网络浏览器执行此操作。我的解决方案如下:他们单击"注销"按钮 - 这会将他们带到一个纯PHP(无html代码)的脚本页面:

<?php
 session_start();
 $_SESSION=array();
 $cookie_parameters=session_get_cookie_params();
 setcookie(session_name(),'',time() -86400,$cookie_parameters['path'],
 $cookie_parameters['domain'],$cookie_parameters['secure'],$cookie_parameters['httponly']);
session_destroy();
header('Location: logout_exit.php');
?>

代码的"标题"部分(立即)将它们带到页面"logout_exit.php"(您可以随心所欲地命名页面,并且可以具有.html扩展名而不是.php)这个页面是纯html(没有php!现在在这一点上,如果您在Chrome中查找cookie,您会发现您的cookie仍然存在!但点击下图:Chrome 显示 cookie 已删除,但仍然存在!

神奇之处在于在您的logout_exit.php页面(在 html 代码的标题部分)包含一个元标记,如下所示:

<meta http-equiv="refresh" content="30">

强制浏览器自动刷新(30 = 30 秒,但选择所需的任何值)。刷新后,如果您现在在Chrome中查看,它会显示"Cookie(0正在使用中)",如果您单击该消息,您会发现该cookie确实已被清除。