Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调用未定义的方法Bcrypt::check_password()-CodeIgniter_Php_Codeigniter_Bcrypt - Fatal编程技术网

Php 调用未定义的方法Bcrypt::check_password()-CodeIgniter

Php 调用未定义的方法Bcrypt::check_password()-CodeIgniter,php,codeigniter,bcrypt,Php,Codeigniter,Bcrypt,我正在尝试实现基本的登录系统 用户密码由bcrypt散列并存储在数据库中 在登录模型中,我试图从数据库中提取散列密码,并与用户使用bcrypt check password输入的密码相匹配 型号 function login($data) { $hashedpass = ""; $query=$this->db->get_where('voyagers', ['EMAIL'=>$data["EMAIL"]]); $resu

我正在尝试实现基本的登录系统

用户密码由bcrypt散列并存储在数据库中

在登录模型中,我试图从数据库中提取散列密码,并与用户使用bcrypt check password输入的密码相匹配

型号

function login($data)
    {
        $hashedpass = "";
        $query=$this->db->get_where('voyagers', ['EMAIL'=>$data["EMAIL"]]);
        $result=$query->result();
        foreach($result as $val) {
        $

        $hashedpass = $val->PASSWORD;

        }
          if ($this->bcrypt->check_password($data["PASSWORD"], $hashedpass )) {
         return $result;
         }
         else
         return 0;

    }
当我运行项目时,如果抛出错误:

A PHP Error was encountered

Severity: Error

Message: Call to undefined method Bcrypt::check_password()

Filename: models/Model_Main.php

Line Number: 47

Backtrace:

谢谢您的帮助。

如果codeigniter中不存在
bcrypt
库,您需要在codeigniter中添加它,如果您的
应用程序/库
文件夹中有
bcrypt
库,请在
构造函数
中这样添加它:

$this->load->library(“library_name”)
然后,您可以这样调用您的库

$this->library\u name->method()


您可以在库上检查Codeigniter。注意:如果您的库文件不在那里,请确保检查库文件夹并将其添加到那里,如果您的文件名是其他名称,则需要为库调用该文件名

我自己找到了解决办法

在库文件夹下的bcrypt.php中,它具有checkpassword函数,而不是check_password


更改函数名使其正常工作。

为什么不使用创建非常相似的密码并同时验证注意:如果使用CI 3及以上解释的不是我@DKRIsn,那么您的文件名和类应该只有大写字母,这不是我建议的吗?