2017-04-27 13 views
-1

私は基本的なログインシステムを実装しようとしています。未定義のメソッドを呼び出すBcrypt :: check_password() - CodeIgniter

ユーザーのパスワードは、bcryptによってハッシュされ、データベースに格納されます。

ログインモデルでは、dbからハッシュされたパスワードを取得し、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: 

感謝を。

+0

パスワードを作成するためだけに使用するのはなぜですかhttp://php.net/manual/en/function.password-hash.php非常に似ていますhttp://php.net/manual/en/function.password-hash.php #refsect1-function.password-hash-examplesおよびhttp://php.net/manual/en/function.password-verify.phpを確認してください – user4419336

+0

注:CIを使用している場合は、ファイル名とクラスの頭文字は大文字にする必要があります3以上がここに説明されています。http://www.codeigniter.com/user_guide/general/styleguide.html#file-naming – user4419336

+0

** ** **私は@DKR – user4419336

答えて

0

自分で解決策を見つけました。

ライブラリフォルダの下のbcrypt.phpには、check_passwordではなくcheckpassword関数があります。

関数名を変更すると効果があります。

+0

でしたか? –

0

あなたは、あなたのapplication/libraryフォルダにbcryptライブラリを持っている場合constructorでこのようにそれを追加し、それが存在しない場合はCodeIgniterのでbcryptライブラリを追加する必要があります。

$this->load->library("library_name"); あなたは、この

ようなあなたのライブラリーを呼び出すことができます

$this->library_name->method();

あなたはライブラリにCodeIgniterのdocumentationを確認することができます。注:ファイル名がライブラリのファイル名を呼び出すために必要なものであれば、そこにライブラリファイルがない場合は、ライブラリファイルをそこに追加してください。

関連する問題