首页 文章

使用Codeigniter刷新后会话已过期

提问于
浏览
1

我正在尝试保存我的会话,它在刷新页面后过期了 .

在我的控制器中:

if($u_id){
                $data=  array(
                    'id'=>$u_id['id'],
                    'user_name'=>$u_id['user_name'],
                    'password'=>$password,

                );

                $this->session->set_userdata('logged_in',$data);
                $this->session->set_flashdata('login_succeed','Logged in Successfully');
                redirect('home/homepage');
            }

在我的主页视图中:

if (isset($this->session->userdata['logged_in'])){
                        echo $this->session->userdata['logged_in']['user_name'];}

我的配置:

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

第一次将我重定向到主页时,会话是正确的,它完全给了我用户名,但是当我刷新页面时,会话过期并将我重定向到登录页面 . 我应该在构造中做些什么或者我该怎么办?请帮忙!我正在使用codeigniter

1 回答

  • 0

    您尚未设置保存路径 . 我把我放在缓存中,但你可以选择你想要的地方 .

    $config['sess_save_path'] = APPPATH . 'cache/sessions/';
    

    或者你可以使用FCPATH

    $config['sess_save_path'] = FCPATH . 'application/cache/sessions/';
    

    将sessions文件夹权限设置为0700

相关问题