未定义的索引:codeigniter中的电子邮件

时间:2020-05-04 12:56:22

标签: codeigniter

我尝试登录

im,但是我仍然遇到以下错误。附件是我的控制器和模型

控制器

public function login(){
        //load session library
        $this->load->library('session');
        $this->load->model('Model_students');

        $email = $_POST['email'];
        $password = $_POST['password'];


     $data = $this->Model_students->login($email, $password);

        if($data)
        {
            $id=$data[0]->id;
            $first_name=$data[0]->firstname;
            $last_name=$data[0]->lastname;
            $this->session->set_userdata('user_id',$id);
            $this->session->set_userdata('lname',$last_name);
            $this->session->set_userdata('user', $email);
            $this->session->set_userdata('fname',$first_name);
            $this->getImg();
            redirect('Students/homepage');
        }
        else{

            $this->session->set_flashdata('error','Invalid login. User not found');
        }
    }

模型

public function login($email,$password)
        {
            // $query = $this->db->get_where('users', array('email'=>$email, 'password'=>$password));
            $query = $this->db->get_where('users', array('email'=>$email));
            if($query->num_rows() == 1 )
            {
                return $query->result();

            }

当我运行此程序时,出现错误: 消息:未定义索引:电子邮件

文件名:controllers / Students.php

行号:145

1 个答案:

答案 0 :(得分:0)

请不要在未经验证的情况下使用$ _POST参数。使用input library

public function login(){
    //load session library
    $this->load->library('session');
    $this->load->model('Model_students');

    $post = $this->input->post(NULL, TRUE);
    $email = isset($post['email']) ? $post['email'] : '';
    $password = isset($post['password']) ? $post['password'] : '';

    $data = $this->Model_students->login($email, $password);
    if($data && !empty($data)){
        $id         = $data[0]->id;
        $first_name = $data[0]->firstname;
        $last_name  = $data[0]->lastname;

        $this->session->set_userdata('user_id', $id);
        $this->session->set_userdata('lname',   $last_name);
        $this->session->set_userdata('user',    $email);
        $this->session->set_userdata('fname',   $first_name);
        $this->getImg();

        redirect('Students/homepage');
    }else{    
        $this->session->set_flashdata('error', 'Invalid login. User not found');
    }
}