2017-04-27 1 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 매우 simular http://php.net/manual/en/function.password-hash.php # refsect1-function.password-hash-examples and 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

여기에 설명되어 있습니다 ** NOT ** me @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을 확인할 수 있습니다. 참고 : 파일 이름이 라이브러리의 해당 파일 이름을 호출하는 데 필요한 다른 이름 인 경우 라이브러리 파일이없는 경우 라이브러리 폴더를 확인하십시오.

관련 문제