是CI还是数据库错误

时间:2019-05-07 09:35:25

标签: php phpmyadmin

我有一个项目,我正在根据用户在我站点中的角色进行登录。我正在使用代码点火器3,xampp,bootstrap4和vs代码进行编辑。我遇到的问题是在创建管理页面并创建2个具有不同用户角色的用户之后,该代码只能从表中提取一行。我在数据库中有2行,如果我使用冷杉登录,则不管角色是什么(在数据库中手动更改几次)都是可以的。但是每次我尝试使用第二行数据登录时,代码始终会显示密码不正确(使用if进行检查,因此我总是被抛出else场景)。但是,如果我删除了第一行,并尝试再次使用第二行(现在是第一行)登录,则会登录。如果创建另一个第二行并尝试使用新数据登录,则代码再次显示我的密码不正确。有人可以帮助我确定问题吗?

    private function _login()
{
    //rules
    $email = $this->input->post('email');
    $password = $this->input->post('password');

    //get user data in a row from DB
    $user = $this->db->get_where('user', ['email => $email'])->row_array();


    if ($user) {
        if ($user['is_active'] == 1) {
            if (password_verify($password, $user['password'])) {
                $data = [
                    'email' => $user['email'],
                    'role_id' => $user['role_id']
                ];
                $this->session->set_userdata($data);
                if ($user['role_id'] == 1) {
                    redirect('admin');
                } else {
                    redirect('user');
                }
            } else {
                $this->session->set_flashdata('message', '<div class="alert alert-danger" role="alert">Password incorrect</div>');
                redirect('auth');
            }
        } else {
            $this->session->set_flashdata('message', '<div class="alert alert-danger" role="alert">email not activated</div>');
            redirect('auth');
        }
    } else {
        $this->session->set_flashdata('message', '<div class="alert alert-danger" role="alert">Email is not registered</div>'); 
        redirect('auth');
    }
}

0 个答案:

没有答案