在cakephp中保存哈希密码
我正在尝试散列密码,它工作正常。但是在插入或更新mysql数据库时,我必须只保存散列密码在cakephp中保存哈希密码,php,mysql,cakephp,hash,Php,Mysql,Cakephp,Hash,我正在尝试散列密码,它工作正常。但是在插入或更新mysql数据库时,我必须只保存散列密码 Controller.php (calling below method in add() method) public function beforeSave() { App::uses('Utitlity','Security'); if(!empty($this->request->data['Mailinglist']['Password'])) { $this->req
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;
}
但在上面的代码中,原始密码存储在数据库中,而不是散列密码。请指导我。
您应该使用$this->data
而不是$this->request->data
一定要尝试debug($this->data)代码>
您应该使用$this->data
而不是$this->request->data
一定要尝试debug($this->data)代码>
您应该在相关模型中使用beforeSave方法。并使用
$this->data['Mailinglist']['Password']
不$this->request->data['Mailinglist']['Password']
在将metod保存到相关模型之前,您应该使用它。并使用
$this->data['Mailinglist']['Password']
不是$this->request->data['Mailinglist']['Password']
仅供参考
$this->数据已被弃用。所以现在您应该使用$this->request->data
参考:仅供参考
$this->数据已被弃用。所以现在您应该使用$this->request->data
Ref:在邮件列表模型中使用此代码,而不是像您的问题所建议的那样在控制器中使用此代码,即将beforeSave()方法从控制器移动到模型中,并参考cornelb的答案。不要在add()操作中手动调用beforeSave()控制器方法。你是对的,@jimmymadon我没有看到这一点。此代码属于模型。这也可以在文档页面中看到,在MailingList模型中使用此代码,而不是像您的问题所建议的那样在控制器中使用此代码,即将beforeSave()方法从控制器移动到模型中,并参考cornelb的答案。不要在add()操作中手动调用beforeSave()控制器方法。你是对的,@jimmymadon我没有看到这一点。此代码属于模型。这也可以在文档页面中看到
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;
}