2

我正在创建一个帮助台系统,有时用户有两个多小时没有使用系统,然后在会话过期时返回,但最后加载的页面仍保留在屏幕上(例如表单)并且用户可以使用正常,但是当他提交表单时,他被重定向到登录页面(没关系),但是用户丢失了输入的数据。我想创建一个 AJAX 函数来检查会话是否已过期。该功能应使用setTimeout()or执行setInterval()。我尝试过使用,"sess_expiration"但似乎该值不会在页面加载时重置,即在指定时间结束后(默认为 7200)它会强制会话到期。

4

2 回答 2

4

你可以这样做

$.ajax({
type : 'POST',
url  : '<?php echo site_url('controllername/methodname')?>'
success : function(data){
    if(data){
       //session available
    }else{
       // expired
    } 
});

和控制器方法

 function methodname(){
        $user_id = $this->session->userdata('user_id');
       if($user_id){
             echo 1;
       }else{
             echo 0;
       }
 }

您可以将 ajax 请求包装在函数中,并每次使用 TRUE 或 FALSE 返回结果。此外 setInterval 可以调用这个函数来检查会话。

于 2013-02-26T12:58:08.357 回答
0

Codeigniter 会话类具有让我们知道会话到期的方法。

function your_method(){

     $this->session->sess_read() === false ? echo "0" : echo "1";

}
于 2014-07-08T12:57:05.023 回答