bcrypt代码点火器

vpfxa7rd  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(425)

我的控制器上有这个代码(codeigniter)
这是我的 login 方法

function login()
    {
        $post = $this->input->post();
        echo $post['pass_user'];
        if(!empty($post))
        {
            $this->db->where('name_user',$post['name_user']);
            $data = $this->db->get('tb_user')->result_array();
            if(empty($data))
            {
                echo "Tidak ada username";
            }
            else
            {
                if(password_verify($post['pass_user'] , $data['pass_user']))
                {
                    $this->session->set_userdata($data['name_user'], $data['lvl_user']);
                    echo "password same";
                }
                else
                {
                    echo "password not same";
                }
            }
        }
        else
        {
            $this->load->view('login');
        }
    }

我有价值 $2y$10$uutShFadO9zEvLMLiHIwcem5hMeFHIG9UQtXeCtKs8ClVJGWZgwSy 为了我的 pass_user 在我的数据库里。
但结果我得到'密码不一样'。如何解决这个问题?

rt4zxlrg

rt4zxlrg1#

希望这对你有帮助
您正在使用此函数返回多维数据 result_array(); 你必须把它和钥匙一起用 password_verify 像这样的方法 $data[0]['pass_user'] ,如果只有一行,这将起作用,因此最好使用 row_array(); 替换这行代码

$data = $this->db->get('tb_user')->result_array();

用这个

$data = $this->db->get('tb_user')->row_array();

整个代码

function login()
    {
        $post = $this->input->post();
        echo $post['pass_user'];
        if(!empty($post))
        {
            $this->db->where('name_user',$post['name_user']);

            //$data = $this->db->get('tb_user')->result_array();

            $data = $this->db->get('tb_user')->row_array();
            if(empty($data))
            {
                echo "Tidak ada username";
            }
            else
            {
                if(password_verify($post['pass_user'] , $data['pass_user']))
                {
                    $this->session->set_userdata($data['name_user'], $data['lvl_user']);
                    echo "password same";
                }
                else
                {
                    echo "password not same";
                }
            }
        }
        else
        {
            $this->load->view('login');
        }
    }

相关问题