Chrome不会在关闭/退出时清除SESSION COOKIES

时间:2014-04-03 19:52:51

标签: javascript php google-chrome session

我正在使用以下方式在localhost上开发应用程序:

Google Chrome 33.0.1750.154 m

XAMPP版本1.8.3

我现在已经使用了一段时间了今天,当我关闭浏览器(所有窗口)时,即使重新启动我的机器后,Chrome也没有清除session cookies,{{1仍然从上一个会话设置。

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

session cookies

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

注意:

测试IE10,IE11和FF并且它们没有表现出相同的行为,它们正在按预期清除<?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); } ?>

我还验证了

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

设置未选中。

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

2 个答案:

答案 0 :(得分:25)

感谢KevinB指出我正确的方向。

原来并不像我想的那样设置了cookie,我最终保留了这个设置:

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

我记得我的机器上最近安装了

Google NOW

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

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

在Google Chrome关闭时继续运行后台应用

设置 SYSTEM 部分。

希望这有助于避免一些麻烦......

答案 1 :(得分:1)

“继续运行后台应用程序”选项可能有效,但我们不能期望用户(客户端)使用其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 shows cookie deleted, but still there!

魔术将在您的logout_exit.php页面(位于html代码的标题部分)中添加一个meta标记,如下所示:

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

强制浏览器自动刷新(30 = 30秒,但选择所需的任何值)。刷新后,如果现在使用Chrome浏览器,它会显示“ Cookies(正在使用0个)”,如果您单击该消息,则表明该cookie确实已清除。