我试图对密码进行散列处理,它工作正常。但是当插入或更新到 mysql 数据库时,我必须只保存散列密码。
Controller.php (calling below method in add() method)
public function beforeSave() {
App::uses('Utitlity','Security');
if(!empty($this->request->data['Mailinglist']['Password'])) {
$this->request->data['Mailinglist']['Password'] = Security::hash($this->request- >data['Mailinglist']['Password']);
}
return true;
}
但在上面的代码中,原始密码存储在数据库中,而不是哈希后的密码。请指导我。
http://book.cakephp.org/2.0/en/models/callback-methods.html#beforesave
您应该使用 $this->data
而不是 $this->request->data
。
为了确保尝试debug($this->data);
public function beforeSave() {
App::uses('Utitlity', 'Security');
if (!empty($this->data['Mailinglist']['Password'])) {
$this->data['Mailinglist']['Password'] = Security::hash($this->data['Mailinglist']['Password']);
}
return true;
}
我是一名优秀的程序员,十分优秀!