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