我将 Codeigniter 与 Tank Auth 身份验证库一起使用。当用户到达需要登录的页面并且他没有登录时,他将被重定向到登录页面。
问题:在本地主机上,当我刷新网页非常频繁时,页面开始加载可能需要长达 30 秒!有时,在等待页面加载后,我似乎已经注销,因为加载的页面是我被重定向到的登录页面。在实时服务器上,页面加载之前的长时间延迟不会发生,但用户可以看似随机地退出。
这里发生了什么事?如何找出导致加载时间过长的代码部分?是什么导致了随机注销?
PHP 代码(控制器)
function index() {
$this->load->module('auth');
if(!$this->auth->tank_auth->is_logged_in()) {
redirect('login');
}
// If user registered/logged in after landing on another page
if($this->session->userdata('entry_url')) {
$entry_url = $this->session->userdata('entry_url');
$this->session->unset_userdata('entry_url');
redirect($entry_url); // redirect back to entry url before registration/login
}
// Set User Session Variables
$user_id = $this->session->userdata('user_id');
$this->load->model('main_model');
$name = $this->main_model->get_user_first_last_name($user_id);
$this->session->set_userdata('first_name', $name['first_name']);
$this->session->set_userdata('last_name', $name['last_name']);
$this->load->view('main');
配置文件
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['cookie_prefix'] = "";
$config['cookie_domain'] = "";
$config['cookie_path'] = "/";
$config['cookie_secure'] = FALSE;