如何销毁会话与浏览器关闭在codeigniter [英] How to destroy session with browser closing in codeigniter

查看:120
本文介绍了如何销毁会话与浏览器关闭在codeigniter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最近我开发了一个带codeigniter的web应用程序。

Recently I have developed a web application with codeigniter. I am facing a session related problem there badly.

我使用以下会话配置: / p>

I used the following configuration for session:

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 1800;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;



现在我的问题是如何通过关闭codeigniter中的浏览器或浏览器标签来销毁所有的会话?

Now my question is how can i destroy all the session with closing browser or browser tab in codeigniter?

推荐答案

您可以使用javascript和asynchron请求。
当关闭窗口时,调用window.onunload的处理程序

You can use javascript and asynchron request. When you close the window, the handler of window.onunload is called

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

为了解决重定向的问题,php端可以使用计数器

To solve the problem of redirection, php side you can use a counter

  class someController  extends Controller {

   public function methodWithRedirection(){

        $this->session->set_userdata('isRedirection', 1);
        //here you can redirect  
   }
}
class homeController extends Controller{
   public function closeConnection(){
        $this->load->library('session');
        if($this->session->userdata('isRedirection')!== 1){
            //destroy session
         }
      }
   }  

这篇关于如何销毁会话与浏览器关闭在codeigniter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆