我的代码中有关于session(userdata / flashdata)的问题。
模态
public function loginCheck(){
$email = $this->input->post('email');
//encrypt password
$this->load->library("hashing");
$password = $this->hashing->incrypt($this->input->post('password'));
$this->params = array('email' => $email, 'password' => $password);
$user = $this->findById();
if(count($user)>0){
$data = array(
'email' => $user->email,
'isLoggedIn' => 1,
'user_id' => $user->id,
'user_type' => $user->user_type
);
$this->session->set_userdata($data);
return true;
}
return false;
}
我的控制器
public function login(){
$this->load->model('model_users');
//if posted login
$submit = $this->input->post('submit');
if($submit){
$this->load->model('model_users');
$rules = $this->model_users->rules;
$this->form_validation->set_rules($rules);
if($this->form_validation->run() == true){
// user credential from model
if($this->model_users->loginCheck()== true){
redirect("admin/site/index");
} else{
$this->session->set_flashdata('message', 'Oops! Invalid email and/ or password.');
redirect("admin/site/login");
}
}else{
$this->session->set_flashdata('message', 'Oops! Invalid email and/ or password.');
redirect("admin/site/login");
}
}
$this->loadPartialView("admin/login");
}
未在 CI 3.0 上设置会话。函数 set_userdata()运行不正常。
手动会话初始化也遇到了麻烦。
答案 0 :(得分:0)
请在使用之前尝试将会话库加载到Controller和Modal中。
$this->load->library('session');
答案 1 :(得分:0)
我不认为这是一个好的答案,但你是否在view
打电话给你的会话?
据我所知,
中找到CodeIgniter支持“flashdata”或仅可用于下一个服务器请求的会话数据,然后自动清除。
所以在div
标签或其他视图中,您的视图
<?php echo $this->session->flashdata('message');?>
答案 2 :(得分:0)
首先,您可以添加会话库。
添加库有两种方法。
1)您可以添加控制器方法。
2)autoload.php文件中的自动加载。