【发布时间】:2017-07-08 12:18:28
【问题描述】:
我正在为我的网站创建登录功能。我正在使用 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 会话设置:
$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;
谁能告诉我为什么 tempdata ttl (time-to-live) 在浏览器关闭后无法正常工作并销毁 tempdata session?
【问题讨论】:
-
临时会话仅在网站的一次刷新/页面加载时保持
-
那么@Abdulla Nilam,有没有办法设置一个会话直到浏览器关闭和另一个会话直到特定时间?
-
你还没有设置你的保存路径示例
$config['sess_save_path'] = APPPATH . 'cache/';
标签: php codeigniter session