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

问题描述 投票:0回答:3

我正在本地主机上开发一个应用程序,使用:

谷歌浏览器33.0.1750.154米

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

我也证实了

从上次停下的地方继续...

设置未选中。

有人知道这是怎么回事以及如何解决吗?

javascript php google-chrome session
3个回答
28
投票

感谢 KevinB 为我指明了正确的方向。

事实证明这不是我想的那样的 cookie 设置,我最终保留了该设置:

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

我记得

Google NOW

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

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

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

SYSTEM部分下进行设置。

希望这有助于缓解一些头痛......


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 http-equiv="refresh" content="30">

强制浏览器自动刷新(30 = 30 秒,但选择您想要的任何值)。刷新后,如果您现在查看 Chrome,它会显示“Cookies (0 in use)”,如果您单击该消息,您会发现 cookie 确实已被清除。


0
投票
Chrome 在关闭/退出时未清除会话 COOKIES

解决方案

    前往:
  1. chrome://settings/content/siteData

  2. 选择选项:
  3. Delete data sites have saved to your device when you close all windows

    
    

  4. 可以选择在上述规则中添加一些例外情况:
  5. Allowed to save data on your device

    
    

替代方案:

您可以通过以下方式手动清除cookie:

击中
    Ctl-Shift-Delete
  1. 选择(除其他外)
  2. Cookies and other site data
  3. Time range
  4. 下拉列表中选择
    All time
    选项
    单击
  5. Clear data
  6. 按钮
    
        
© www.soinside.com 2019 - 2024. All rights reserved.