codeigniter - 会话在 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['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';
自动加载.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 会话变量是用数据设置的。这是控制器本身的功能。
解决方案
推荐阅读
- tfs - 使用 VS Code 将文件夹添加到 TFVC
- c++ - 将 3D 矢量浮点数打包成 unsigned int 并将其解包
- angular - 如何限制angular2下拉列表中的重复值
- gmail - 如何在新版 Gmail 中禁用智能回复?
- sql - 如何将列转换为行并替换列名
- java - 减少之前的数据计数,如果当前发送数据与之前相同
- c# - selenium 在 c# 中的 explorer 11 上找到错误位置的元素
- javascript - 如何从主刀片视图中获取附加文本框名称并插入laravel中的控制器
- python - 使用python套接字连接到服务器,接收数据并重新发送到服务器
- c++ - 带get函数的无限循环