0

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

该代码运行良好,用户已正确保存到数据库中。

但...

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

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数组中写的消息。

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

4

2 回答 2

2

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

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

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

于 2013-02-08T09:48:03.943 回答
0

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

您使用的是哪种版本的 Cake?

于 2013-02-08T09:52:18.883 回答