首页 > 解决方案 > Codeigniter 3 password_verify() 需要 2 个参数,1 个给定

问题描述

我被困在 CI 中创建登录系统。

我有 2 个错误:-
错误 1:password_verify() 需要 2 个参数,给定 1 个
请有人告诉我缺少什么。我已经浏览了谷歌上的多个论坛和页面,但似乎找不到合适的答案。请你们中的一个人告诉我哪里可能出错了。

控制器:

public function auth()
{
    $email = $this->input->post('email', TRUE);
    $password = password_verify($this->input->post('password', TRUE));
    $validate = $this->model('Loginmodel')->validate($email,$password);
    if ($validate->num_rows() > 0)
    {
        $data        = $validate->row_array();
        $fname       = $data['fname'];
        $email       = $data['email'];
        $user_level  = $data['user_level'];
        $companyname = $data['companyname'];
        $mobileno    = $data['mobileno'];
        $avatar      = $data['avatar'];
        $sesdata     = array

模型:

class Loginmodel extends CI_Model 
{
    public function validate ($email, $password)
    {
        $this->db->where('email', $email);
        $this->db->where('passwword', $password);
        $result = $this->db->get('dealers');
    }
}

标签: phpoopcodeigniter-3password-hash

解决方案


您的问题出在这段代码中:

password_verify($this->input->post('password', TRUE));

它期望密码哈希的第二个参数用于验证,因此您需要将其预先存储在数据库中的某个位置并检索它以传递给

密码验证()

方法作为第二个参数。


推荐阅读