使用Codeigniter刷新后会话已过期

时间:2016-12-12 21:19:42

标签: php codeigniter session

我试图保存我的会话,刷新页面后它已过期。

在我的控制器中:

 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 :(得分:0)

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

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

或者您可以使用FCPATH

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

将会话文件夹权限设置为0700