php - 使用 AJAX 检查 Codeigniter session 是否已过期

标签 php ajax codeigniter session session-timeout

我正在创建一个帮助台系统,有时用户会在两个多小时内没有使用该系统,然后在 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/

相关文章:

php - 如何找到最佳的发货仓库位置?

php - 无论如何让 Notepad++ 同时突出显示 PHP 和 HTML?

php - 如何改进 php 和 MySQL 中的查询以实现快速显示

jQuery TinyMCE 在 AJAX 上失败

javascript - 将图像从base64转换为图像并保存在django的数据库中

php - 在代码点火器中调用助手和库的方法有区别吗?

php - Codeigniter 查询结果返回带有 setter 的自定义结果对象

php - 在源中创建新行

javascript - ajax 调用后获取旧数据(get 方法)Laravel 5.5

php - 如何在 PHP 中存储聊天记录