【发布时间】:2011-10-11 04:23:30
【问题描述】:
我正在制作一个密码重置表单,其中包含两个字段:password1 和 password2。用户输入新密码,然后再次重新输入新密码。
我不确定如何制定一个验证规则来比较字段中的两个值并查看它们是否相同。
【问题讨论】:
标签: validation cakephp passwords
我正在制作一个密码重置表单,其中包含两个字段:password1 和 password2。用户输入新密码,然后再次重新输入新密码。
我不确定如何制定一个验证规则来比较字段中的两个值并查看它们是否相同。
【问题讨论】:
标签: validation cakephp passwords
如果您使用的是 Auth 组件,那么您需要在控制器中对第二个密码进行哈希处理,因为密码会自动进行哈希处理。
要比较 2 个字段,您需要编写自定义验证规则:http://bakery.cakephp.org/articles/aranworld/2008/01/14/using-equalto-validation-to-compare-two-form-fields(也请阅读 cmets,因为教程本身有点旧)
【讨论】:
【讨论】:
恕我直言,在这种情况下,创建一个单独的规则比创建一个单独的规则更麻烦。如果您想编写“纯”CakePHP 代码,您可以这样做,但比较控制器中的字段并在它们不匹配时手动使其中一个字段无效会更容易:
if( $this->data[ 'User' ][ 'password1' ] != $this->data[ 'User' ][ 'password2' ] ) {
$this->User->invalidate( 'password2', "The passwords don't match." );
}
【讨论】: