在代码点火器中关闭浏览器后,临时数据会话将过期



我正在为我的网站创建登录功能。我正在使用CI 会话。我在登录模型中创建了两个会话。第一个是临时用户,第二个是永久用户(记住我功能)。对于第一个,我有tempdata(),对于第二个,我有userdata()。我面临的问题是会话在浏览器关闭后过期。

我的登录模型代码如下所示:

public function logger($email, $pass, $check)
{
$q = $this->DB->get_where('users', array('email' => $email, 'pass' => $pass));
if($q->num_rows() == 1)
{
if(isset($check))
{   
$this->session->set_tempdata('per_ue', $email, 86400*30);
$this->session->set_tempdata('per_up', $pass, 86400*30);
return redirect('uhome');
} else {
$this->session->set_userdata('tmp_ue', $email);
$this->session->set_userdata('tmp_up', $pass);
return redirect('uhome');
}
} else {
$login_error = '<p class="text-danger">Login credentials are incorrect</p>';
$this->load->view('coders-community/login', compact('login_error'));
}
}

我的会话配置设置:

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 0;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

谁能告诉我为什么tempdatattl(生存时间)不起作用并在浏览器关闭后删除tempdata会话

试试这样。只需设置$config['sess_expiration']一定的时间。

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;//sets session for 2 hours
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

最新更新