首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bcrypt Codeigniter

Bcrypt Codeigniter
EN

Stack Overflow用户
提问于 2018-07-05 14:03:53
回答 1查看 464关注 0票数 0

我在我的控制器(codeigniter)上有这个代码

这是我的login方法

代码语言:javascript
复制
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');
        }
    }

并且我的数据库中有我的pass_user的值$2y$10$uutShFadO9zEvLMLiHIwcem5hMeFHIG9UQtXeCtKs8ClVJGWZgwSy

但是我得到的结果是“密码不一样”。如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 14:12:26

希望这能帮到你

您使用此result_array();返回多维数据您必须将其与password_verify方法中的键一起使用,如此$data[0]['pass_user']__,如果您只有单行,这将起作用,因此最好使用row_array();返回单数组数据

替换此行代码

代码语言:javascript
复制
$data = $this->db->get('tb_user')->result_array();

有了这个

代码语言:javascript
复制
$data = $this->db->get('tb_user')->row_array();

完整的代码

代码语言:javascript
复制
    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');
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51184313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档