Сессия не работает в codeigniter - PullRequest
0 голосов
/ 31 мая 2018

Я разработал проект работы в 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 устанавливается вместе с данными.Это функция в самом контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...