codeigniter上的会话无法正常工作

时间:2018-03-05 08:10:19

标签: php codeigniter

我的代码中有关于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()运行不正常。

手动会话初始化也遇到了麻烦。

3 个答案:

答案 0 :(得分:0)

请在使用之前尝试将会话库加载到Controller和Modal中。

$this->load->library('session');

答案 1 :(得分:0)

我不认为这是一个好的答案,但你是否在view打电话给你的会话? 据我所知,

  

CodeIgniter支持“flashdata”或仅可用于下一个服务器请求的会话数据,然后自动清除。

可以在sesseion documentation

中找到

所以在div标签或其他视图中,您的视图

<?php echo $this->session->flashdata('message');?>

答案 2 :(得分:0)

首先,您可以添加会话库。

添加库有两种方法。

1)您可以添加控制器方法。

2)autoload.php文件中的自动加载。