Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在cakephp中保存哈希密码_Php_Mysql_Cakephp_Hash - Fatal编程技术网

在cakephp中保存哈希密码

在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

我正在尝试散列密码,它工作正常。但是在插入或更新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;
 }
但在上面的代码中,原始密码存储在数据库中,而不是散列密码。请指导我。

您应该使用
$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;
}