【问题标题】:How to destroy session with browser closing in codeigniter 3如何在codeigniter 3中关闭浏览器来销毁会话
【发布时间】:2015-10-28 10:40:06
【问题描述】:

首先我要提醒你我已经阅读了this question,我正在使用Codeigniter 3。 我想破坏浏览器关闭的会话,如 PHP 会话! 我读过一些关于使用 ajax 的文章:

var unloadHandler = function(e){
        //here ajax request to close session
  };
window.unload = unloadHandler;

和.... 但我不想让自己依赖于 js 来销毁浏览器关闭的会话。 这是我的config.php

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'soheil_blog_name';

$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

【问题讨论】:

标签: php codeigniter session destroy


【解决方案1】:

您只需将 'sess_expiration' 设置为 0,如 manualconfig.php comments 中所述。

注意:从技术上讲,当浏览器关闭时,您不能真正销毁会话。您只能告诉浏览器在会话 cookie 关闭后丢弃它,但会话本身仍然可以在服务器端使用(即,如果您是 MITM 攻击的受害者并且有人窃取了会话 ID)。
该会话实际上稍后会被垃圾收集器删除。

【讨论】:

  • 请记住,即使 sess_expiration 设置为 0,如果用户使用浏览器设置“从上次中断的地方继续”,浏览器甚至不会删除 cookie。所以,并不是 Codeigniter 做错了什么,只是在某些情况下,浏览器本身可能会导致该功能无法按预期工作。在这个问题中进一步讨论:stackoverflow.com/questions/10617954/…
猜你喜欢
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
  • 1970-01-01
相关资源
最近更新 更多