我在这里看到很多关于我的主题的问题,但似乎我仍然没有找到答案。实际上我想要的是,在会话过期后,用户将被自动重定向到一个页面,显示“您的会话已经过期,请注册以继续浏览。”
实际上我不知道如何确定用户的会话是否已经过期。以下是我目前拥有的内容。
谢谢。
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');
}
content="900;url=<?php echo base_url("logout"); ?>
,这里的900
数字是以毫秒还是秒为单位? - Gagantous$id
是否有数据或为真,否则$id
为0或假,如果$id = 0或false
,则意味着session
已过期,因此没有数据,因为它已经过期。因此,ELSE
将重定向您到登录页面,因为会话已过期。您可以在登录页面中添加一个条件,显示通知,例如localhost/login?expired=1
。您可以将$_GET['expired']
设置为1,显示“会话已过期,请重新登录。”或者您可以使用jquery来显示通知,然后在单击OK按钮后重定向到登录页面。 - MarkmepleasesetInterval(...)
将每隔 1 分钟检查一次function check_session()
。您可以将setInterval(...)
放在页脚中,function check_session
可以放在另一个视图中,然后您可以在想要的控制器中加载该视图,例如url: '<?php echo site_url("CONTROLLERNAME/check_session")?>'
。 - Markmepleasefunction checkLogin() { $.ajax({ type : 'POST', url : js_base_url('checkLogin'), success : function(data){ if(data = 0){ if(!alert("您的会话已超时。您将自动注销。请重新登录以继续。谢谢!")){ var l = "<?php echo base_url('login/authentication?logout=1'); ?>"; window.location.href=l; }}}}); }
这是我的CheckLogin.php - 控制器function index(){ $usr = $this->session->userdata('s_data'); if($usr){ echo $data = '1'; }else{ echo $data = '0'; }}}
希望这能帮到您。 - Markmeplease