【问题标题】:CodeIgniter how to make a session to close on user browser closeCodeIgniter 如何使会话在用户浏览器关闭时关闭
【发布时间】:2014-01-16 13:22:03
【问题描述】:

我在 codeIgniter 会话配置中禁用了“destryo_on_close”。

我不太需要它,但有一个例子。

我已经为用户登录设置了“记住我”复选框。

像往常一样,当用户登录时,我设置会话以保持他的登录状态。但是,如果用户取消选中记住我,我必须使 $this->session->userdata('email') 在用户上被销毁浏览器关闭事件。 CodeIgniter 通常为所有我不想要的会话提供此选项,并且仅在用户取消选中“记住我”并且仅用于“电子邮件”会话的情况下才需要它。

【问题讨论】:

  • 我不确定是否可以为这样的个人提供不同的配置,但您确实应该为此使用 cookie。
  • 会话只存在于浏览器会话中,所以当浏览器关闭时会话被销毁。 Cookie 仍然存在,即使在浏览器关闭后也是如此。
  • 不! CodeIgniter 使用 cookie 进行会话,这就是为什么它让您能够在需要时保存它们。

标签: php codeigniter session


【解决方案1】:

不确定我是否理解,但是如何取消设置您需要的数据?看看here 删除会话数据

编辑:我不知道你的代码结构如何,但也许这样的东西会起作用:

if($this->input->post('remember_me') == 1){
    // user has clicked 'remember me'
    // your code here ... 
} else {
    // user has not clicked remember me
    $this->config->set_item('sess_expire_on_close', true);
}

虽然我还没有测试它是否有效,但是如果您阅读here,您可以根据需要设置或更改配置值。

【讨论】:

  • 是的,很好。但要完成你所说的,我需要将'is_permanent'设置为布尔值,以检查用户是否检查了remember_me。谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
相关资源
最近更新 更多