php - 在 cakephp 中保存散列密码

标签 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->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;
}

关于php - 在 cakephp 中保存散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22246583/

相关文章:

php - html页面中的数据库mysql

MySQL import csv 只得到一半的行

java - 即使在设置 c3p0.testConnectionOnCheckout=true 后,与 MySQL 的数据库连接也会超时

php - CakePHP:如何使用 PHP 在 MVC 框架中动态使用 CSS 属性类型

php - CakePHP:具有默认值的日期字段

mysql - 执行数据库行 DeleteAll,其中 1 个字段等于某物而其他字段不等于某物

php - 如何在mysql中像with case一样使用sql?

php - 使用 Odoo (OpenERP) WebService API for PHP 创建发票行

javascript - 向多个服务器发送 Ajax 请求?

mysql - 从数据库中获取当月数据