自动使会话过期并检测会话在Codeigniter中是否已过期

AyJ*_*ier 5 php session codeigniter trial

我在这里看到很多关于我话题的问题,但似乎我还没有找到答案.我真正想要的是当会话到期时,用户将被自动重定向到一个页面说Your session has already expired. Please register to continue browsing..

实际上我不知道如何确定用户的会话是否已经过期.这是我到目前为止所拥有的.

谢谢.

function trial() {

    $this->db->select()->from('user')->where('user_type', 'tester');
    $tester = $this->db->get();

    foreach ($tester->result() as $row) {

        $data = array(
            'id' => $row->id,
            'first_name' => $row->first_name,
            'last_name' => $row->last_name,
            'display_name' => $row->display_name,
            'email' => $row->email,
            'avatar' => $row->avatar,
            'user_type' => $row->user_type,
            'logged_in' => TRUE
        );
        $this->session->set_userdata($data);
    }

    redirect(base_url(), 'refresh');
} 
Run Code Online (Sandbox Code Playgroud)

M K*_*aid 6

您可以通过ajax调用来检查用户的会话,并将其包装到setInterval jquery's函数中

setInterval(function() {
  // Do something every 1 minute 
$.ajax({
type : 'POST',
url  : '<?php echo site_url("CONTROLLERNAME/check_session")?>'
success : function(data){
if(data){
   //your session is not expired
}else{
   //your session is already expired
 window.location.href="your url"; // or you can redirect from here also
} 
});
}, 60000);


 //This function checks your session 
 function check_session(){
    $id = $this->session->userdata('id');
   if($id ){
         echo 1;
   }else{
         echo 0;
   redirect('your register controller');//redirect from here or you can redirect in the ajax response
   }

  die();
 }
Run Code Online (Sandbox Code Playgroud)

希望它有意义


M.B*_*iya 1

您可以将数据存储在会话对象中,并且用户重定向任何页面,您可以检查会话对象是否已存在,如果不存在,您可以显示警报,会话已过期