Sen cakePHP şifre doğrulama ile yolda başka bir sorun haline çalıştırmak olabilir.
The problem is that cake hashes passwords first, then does validation, which can cause the input to fail even if it is valid according to your rules. This is why the password is returned to the input field hashed instead of normal.
Bunu düzeltmek için, bunun yerine özel alan adı 'şifre' kullanarak, 'tmp_pass' gibi farklı bir ad kullanın. Bu şekilde, cakePHP Auth otomatik alan karma olmaz.
İşte örnek bir formun
echo $form->create('Vendor', array('action' => 'register'));
echo $form->input('email');
echo $form->input( 'tmp_pass', array( 'label' => 'Password','type'=>'password' ));
echo $form->end('Register');
Vendor modelde yerine örneğin, 'tmp_pass' bu kuralları atamak 'şifre' için doğrulama kuralları atama yok
var $validate = array('email' => 'email', 'password' => ... password rules... );
olur
var $validate = array('email' => 'email', 'tmp_pass' => ... password rules... );
Son olarak, Vendor model, BeforeSave uygulamak ().
Veri doğrulama ('tmp_pass' Lütfen kurallara karşı doğrulanmış olacak) İlk olarak, bkz.
Başarılı, elle karma tmp_pass ve $ koydum this-> data ['Vendor'] ['password'] doğruysa dönerseniz. Başarısız olursa, return false.
function beforeSave() {
if($this->validates()){
$this->data['Vendor']['password'] = sha1(Configure::read('Security.salt') . $this->data['User']['tmp_pass']);
return true;
}
else
return false;
}