在codeigniter中关闭浏览器后,Tempdata会话将过期

时间:2017-02-19 05:16:14

标签: php codeigniter session

我正在为我的网站创建登录功能。我正在使用 CI会话。我在登录模型中创建了两个会话。第一个是针对temp的。用户,而第二个是永久用户(记住我的功能)。对于第一个,我是 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;

有谁能告诉我为什么tempdata ttl(生存时间)无法正常工作&amp;浏览器关闭后,如何解析 tempdata会话

1 个答案:

答案 0 :(得分:0)

尝试这样。只需要一定的时间设置$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;
相关问题