使用codeigniter框架创建Web应用程序,正在使用版本2.0.3。 我发出ajax请求以不时更新页面,并获取通知。 我访问过codeigniter论坛并询问有关codeigniter会话和ajax的问题,并找到了我使用的代码片段,并保存在库和类“My_session.php”中
class MY_Session extends CI_Session {
/**
* Update an existing session
*
* @access public
* @return void
*/
function sess_update() {
// skip the session update if this is an AJAX call! This is a bug in CI; see:
// https://github.com/EllisLab/CodeIgniter/issues/154
// http://codeigniter.com/forums/viewthread/102456/P15
if ( !($this->CI->input->is_ajax_request()) ) {
parent::sess_update();
}
}
}
但是,自从我添加此代码后,我无法保持登录超过五分钟而不会被注销,或者有时根本无法登录。 有没有人有类似的经历?
答案 0 :(得分:0)
如果您希望保持更长时间的登录状态,请在application / config / config.php中将sess_expiration设置为超过五分钟
答案 1 :(得分:0)
评估is_ajax_request()时会发生什么?在该代码段中添加:
echo 'AJAX: ' . $this->CI->input->is_ajax_request(); exit;
查看if语句是否正常工作。它可能会返回false并且每次都更新会话。只是一个快速的起点:)