密码确认验证 CakePHP

2023-12-24

我进行了广泛的搜索,尝试了书中的每一个技巧,但我仍然无法让我的 CakePHP 应用程序执行简单的密码确认验证。我尝试创建一个自定义验证规则,如下所示:

'passwordequal' => array('rule' => 'checkpasswords' , 'message' => 'Passwords Do Not Match')

然后像这样定义“checkpasswords”:

public function checkpasswords(){

    if(strcmp($this->data['User']['new_password'],$this->data['User']['confirm_password']) == 0 )
    {
        return true;
    }
    return false;
}

“new_password”和“confirm_password”是密码输入字段。这不起作用。然后我尝试了一种对“confirm_password”进行哈希处理的方法。那也没用。我还有其他未经过验证的“规则”,例如“notempty”,我认为这是标准 CakePHP 规则之一。任何人都可以帮忙吗?我知道这个问题已经被问过几次了,但这些解决方案都不适合我。 CakePHP 文档也没有多大帮助。


视图文件中的两个字段

echo $this->Form->input('password');
echo $this->Form->input('repass');

模型文件

<?php
class Post extends AppModel {
    public $validate = array(
        'repass' => array(
            'equaltofield' => array(
            'rule' => array('equaltofield','password'),
            'message' => 'Require the same value to password.',
            //'allowEmpty' => false,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            'on' => 'create', // Limit validation to 'create' or 'update' operations
            )
        )
    );

function equaltofield($check,$otherfield)
    {
        //get name of field
        $fname = '';
        foreach ($check as $key => $value){
            $fname = $key;
            break;
        }
        return $this->data[$this->name][$otherfield] === $this->data[$this->name][$fname];
    } 
}?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码确认验证 CakePHP 的相关文章

随机推荐