【问题标题】:PHP Session issue on browser close浏览器关闭时的 PHP 会话问题
【发布时间】:2013-12-10 07:40:41
【问题描述】:

这里遇到问题,我需要在关闭浏览器时清除用户会话。我已经尝试了所有各种选项,例如使用 onunload 函数在浏览器关闭时设置 session.cookie_lifetime=0 或 session_destroy。但是当我下次打开浏览器时,似乎没有什么会破坏会话。

我只是用谷歌搜索了一下,我看到在 Chrome 浏览器中有一个名为“允许设置本地数据”的设置,当我这样做时,必须将其更改为“仅保留本地数据直到我退出浏览器”它不会保留我的会话。

真正的问题是我不能要求每个用户更改浏览器的设置,然后它会相应地工作,有没有办法可以使用 php 或 javascript 在代码中处理它。任何选项都可以。

【问题讨论】:

  • 在谷歌修复它之前你可能不得不忍受它。
  • 那么到目前为止我们还没有可以注入的解决方案吗?
  • 我认为当浏览器关闭时会话会自动销毁......无论如何你可以分享你的代码你所做的......
  • Alok 在正常情况下它确实会破坏会话,您可以尝试在 google chrome 浏览器中设置该选项,其中显示“允许设置本地数据”,设置它然后尝试关闭浏览器并打开它再次,您的会话不会被破坏。如果你在本地有任何项目,你可以尝试它,它的行为会相同。

标签: php google-chrome session


【解决方案1】:

您是否尝试过在页面加载时同时检查 cookie 和会话?像这样的:

1) 在卸载时销毁 cookie 2)在页面加载检查两者

if(isset($_COOKIE['user'] && $isset($_SESSION['user'] {
    //user is logged in
} else {
    //your code should fall here after user closes browser
    //because the cookie doesn't exist anymore.  Maybe you can even destroy the session too
    [session_destroy();]
    ...
    ...
}

【讨论】:

  • 是的,逻辑已经到位。但它仍然是一个浏览器特有的问题,它不起作用。
  • 看看这个,也许会有所帮助:erlycoder.com/111/…
猜你喜欢
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 2015-08-12
  • 2014-08-15
  • 2011-12-17
  • 2012-04-11
  • 2015-04-23
  • 2011-04-11
相关资源
最近更新 更多