在代码点火器 3 中配置会话



您好,我一直在使用codeigniter v2.2,现在我已经开始使用codeigniter v3.0,我在进行用户帐户身份验证会话时遇到问题,我想获得有关如何使其工作的帮助。

以下是控制器中的代码。

public function validation(){
    $this->load->helper('url');
    $this->load->library('form_validation');

    $this->load->model('user_model');
    $query = $this->user_model->validate();

    if($query) //if credential validated
    {
        $data1 = array(
            'email' => $this->input->post('email'),
            'is_logged_in' => true );
        $this->session->set_userdata($data1);
        redirect('users_area/user_is_in');

    }
    else{
        $this->login();
    }

}

user_model代码如下

 function validate(){
    $this->db->where('username',$this->input->post('username'));
    $this->db->where('password', md5($this->input->post('password')));

    $query = $this->db->get('tbl_users');
    if($query->num_rows == 1){
        $this->session->set_userdata(array('authorized' => true));
        return true;
    }
}

最后还有一个名为users_area的控制器,它是检查会话是否已设置,然后允许用户访问在以前的Codeigniter版本中一直工作的页面

users_area控制器

function user_is_in(){

    $is_logged_in = $this->session->userdata('is_logged_in');
    if($is_logged_in != ""){
        $this->members();
    }else {
        redirect('verify/signin');
        die();
        //session has to be altered bro
    }

}

function members()
{
    redirect('verify/users_mahali');
}

试试这个

在模型中

function validate(){
    $this->db->where('username',$this->input->post('username'));
    $this->db->where('password', md5($this->input->post('password')));
    $query = $this->db->get('tbl_users');
    $result = $query->result_array();
    $count = count($result);
    if(empty(count)){
        return false;
    }
    else{
        return true;
    }
}

在控制器中

public function validation(){
    $this->load->helper('url');
    $this->load->library('form_validation');
    $this->load->model('user_model');
    $result = $this->user_model->validate();

    if($result == false)
    {
        # Invalid user
        $this->login();
    }
    else{
        # valid use
        $data1 = array(
            'email' => $this->input->post('email'),
            'is_logged_in' => true 
        );
        $this->session->set_userdata($data1);
        redirect('users_area/user_is_in');
    }
}

最新更新