Bcrypt Codeigniter - PullRequest
       18

Bcrypt Codeigniter

0 голосов
/ 05 июля 2018

у меня есть этот код на моем контроллере (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 в моей базе данных.

Но в результате я получаю «пароль не тот же». Как это решить?

1 Ответ

0 голосов
/ 05 июля 2018

Надеюсь, это поможет вам

Вы возвращаете многомерные данные, используя этот 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');
        }
    }
...