2016-08-12 19 views
0

cakephp 2.xxを使用しています。以前にsha256でパスワードをハッシュしたい場合は、 の前にパスワードを入力してください。まったくキャッチ検証を形成していないので、どのように私ができるときには、必ずパスワードハッシュをパスワードを確認する方法cakephpをハッシュで確認する方法

if ($this->request->data['Driver']['password'] != $this->request->data['Driver']['confirm_password']) { 
     $this->request->data['Driver']['password'] = hash('sha256',$this->request->data['Driver']['password']); 
} 

をハッシュ自動的に、もし私のコントローラでは、ときに、フォームのキャッチの検証、一致するパスワードをパスワード入力と再確認パスワードを確認しています私のモデルで検証をする?

ありがとうございました。お使いのモデルで

答えて

3

(Driver.php)

検証

<?php 
    public $validate = array(

     'password' => array(
      'notempty' => array(
       'rule' => array('notempty'),        
      ), 
      'password_confirm'=>array(
       'rule'=>array('password_confirm'), 
       'message'=>'Password Confirmation must match Password',       
      ),  
     ),  
    ); 
?> 

カスタム検証ルール

<?php 
    public function password_confirm(){ 
     if ($this->data['Driver']['password'] !== $this->data['Driver']['password_confirmation']){ 
      return false;  
     } 
     return true; 
    } 
?> 

ハッシュが、私はより良い

<?php 
    public function beforeSave($options = array()) {   
     $this->data['Driver']['password'] = hash('sha256',$this->data['Driver']['password']); 
     return true;   
    } 
?> 
Authコンポーネントを選択すると思います

それは全体的な説明だとおそらくそれの一部を変更する必要があります

+0

ありがとう、それは私のために働いています。 –