会话在codeigniter中不起作用

时间:2018-05-31 09:16:25

标签: codeigniter

我已经在codeigniter中开发了一个项目工作。网站上有一个登录页面。登录时,单击任何菜单项时,将重定向到登录页面。此外,在登录后重新加载主页时,它也会重定向到登录页面。

public function profile() {
    $data = array();
    if($this->session->userdata('loggedIn') !== FALSE && $this->session->userdata('logType') == 'stu') {
            //echo 'okkkk!!!';die;
    $data = $this->session->all_userdata();
    $data['user_data'] = $this->data->getStuByIdDb($data['stu_id']);
    log_message('info','data '.print_r($data,TRUE));
        $this->load->view('stuProfileView',$data);
    }
            else{
                //echo 'okkkk';die;
        $this->load->view('stuLoginView');
    } 
}   

上面显示了特定菜单配置文件的代码。单击它时会转到名为'Stu'的控制器,在该控制器中编写了一个名为profile()的函数,我在上面粘贴了该函数。我已经自动加载了会话库。但if语句会话无效。任何人都可以建议一个纠正这个问题的解决方案吗?

这是由于我的服务器版本问题吗?

的config.php

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

$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';

autoload.php

$autoload['libraries'] = array('database', 'session', 'encrypt');

控制器文件

public function authStu() {
    $rsp = array();
    $authStuData = array();
    $authStuData = $this->input->post(NULL, TRUE);
    log_message('info',print_r($authStuData,TRUE));     
    $rsp = $this->data->authStuDb($authStuData);
    log_message('info','rsp '.print_r($rsp,TRUE));
    if ($rsp['authStuStatus'] == TRUE){
        $rsp['status'] = TRUE;
        $rsp['msg'] =  "Student Valid";
        $rsp['statusID'] = 010;
        $rsp['data'] = NULL;

        $newdata = array(
            'stu_id'  => $rsp['stu_id'],
            'logType' => 'stu',
            'loggedIn' => TRUE
        );
        $this->session->set_userdata($newdata);

    }elseif($rsp['authStuStatus'] == FALSE){
        $rsp['status'] = FALSE;
        $rsp['msg'] =  "Sorry, this student doesn't exist";
        $rsp['statusID'] = 000;
        $rsp['data'] = NULL;
    }
    echo json_encode ($rsp);
}

在上面的代码中,使用数据设置loggedIn会话变量。这是控制器本身的功能。

0 个答案:

没有答案