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)
您可以通过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)
希望它有意义