我正在创建一个帮助台系统,有时用户会在两个多小时内没有使用该系统,然后在 session 过期时返回,但最后加载的页面仍保留在屏幕上(例如表单)并且用户可以正常使用它,但是当他提交表单时,他被重定向到登录页面(没关系),但用户丢失了输入的数据。
我想创建一个 AJAX 函数来检查 session 是否已过期。该函数应使用 setTimeout()
或 setInterval()
执行。
我尝试过使用“sess_expiration”,但似乎该值不会在页面加载时重置,即在指定时间(默认为 7200)结束后,它会强制 session 过期。
最佳答案
你可以这样做
$.ajax({
type : 'POST',
url : '<?php echo site_url('controllername/methodname')?>'
success : function(data){
if(data){
//session available
}else{
// expired
}
});
和 Controller 方法
function methodname(){
$user_id = $this->session->userdata('user_id');
if($user_id){
echo 1;
}else{
echo 0;
}
}
您可以将ajax请求包装在函数中,并每次以TRUE或FALSE返回结果。另外setInterval可以调用该函数来检查 session 。
关于php - 使用 AJAX 检查 Codeigniter session 是否已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15089552/