使用CakePHP 2.2.5的密码验证错误消息

时间:2013-02-08 08:58:05

标签: php cakephp

我有一个非常奇怪的问题,我创建了一个简单的表单来将用户添加到db。

代码运行良好,用户正确保存到db。

但是...

我在使用验证时遇到问题,这是关于密码字段的验证数组的摘录:

public $validate = array(        
    ...
    'password'  => array(
        'rule'     => array('minLength', 4),
        'required' => true,
        'message'  => "La password deve essere lunga almeno 4 caratteri"
    )
);

minLength规则正常工作,但如果我尝试显示消息:

debug($this->User->validationErrors);

在我的控制器中。我看到了这个输出:

array(
    'password' => '*****'
)

为什么“ * ”?? 我想收到我在$validate数组中写的消息。

此问题仅发生在密码字段。

2 个答案:

答案 0 :(得分:2)

这是一个必须实施的愚蠢的“安全功能”,以避免一些粗心的人在他们的网站上显示他们的数据库密码(因为他们忘了关闭调试)。 因此,如果关键字“密码”,“架构”等在数组中,则该值将被隐藏。

只需使用pr(),var_dump(),print_r()或任何其他不这样做的方法。

PS:你可以发现看看代码(https://github.com/cakephp/cakephp/blob/master/lib/Cake/Utility/Debugger.php#L449

答案 1 :(得分:0)

因为密码是哈希的,并且有超过4个字符。您必须检查密码并在beforeSave中验证哈希之后:)

您正在使用哪种版本的蛋糕?