【问题标题】:Codeigniter CI_SESSIONS expire on window closed not workCodeigniter CI_SESSIONS 在窗口关闭时过期不起作用
【发布时间】:2013-03-09 15:17:28
【问题描述】:

我已经为此主题进行了很多搜索,但找不到我需要的有效解决方案。 我正在使用 ci_sessions 将用户数据存储在 db 上,bt 当我关闭窗口而不是注销时,几个小时后我再次登录,然后我以前的会话也存储在 db 中,新会话也创建了重复的会话创建。我也使用这个属性

$config['sess_expire_on_close'] = TRUE; 

但它不起作用。我想在浏览器关闭时销毁会话。我正在使用 CI 最新版本。

【问题讨论】:

  • 你使用的是什么版本
  • 我正在使用 CI 2.12 版,它工作正常。会话在关闭浏览器时过期。 我英语不好,对不起
  • 我也是usnig ci 2.12版本bt它不会在浏览器关闭时过期..:(

标签: php codeigniter session


【解决方案1】:

您可以为此设置cookie,这将在浏览器关闭事件时过期,您可以在您的网站中检查,如果cookie 不存在则销毁会话。

这样设置cookie:

setcookie("cookie_name", "cookie_value", '');

如果您不定义 cookie 销毁时间,那么它将在浏览器关闭后立即销毁,以便为您提供帮助。

【讨论】:

  • 我正在使用 ci_sessions 表来存储和使用它,所以我想从中删除而不是使用 cookie。
  • 因此您可以检查如果 cookie 不存在,那么您可以从前一个会话 id 中删除数据库中的数据并销毁该会话并启动一个新会话,这样您就不会有重复的会话。
  • 你能清楚地告诉我怎么做吗,在配置文件中我定义的cookie名称是 $config['sess_cookie_name'] = 'ci_session';那么如何设置cokkie以及在哪里设置以实现我的目标
  • 您可以在设置会话的同一文件中设置 cookie,并且此 cookie 不会在此名称 $config['sess_cookie_name'] = 'ci_session' 上。这将是一个不同的命名 cookie。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 2015-01-16
  • 2016-09-27
  • 2013-12-14
  • 2013-05-22
相关资源
最近更新 更多