北京过客 2011-04-23 10:40:40 21875次浏览 22条回复 0 0 0

注册表单怎么样验证两次输入的密码是否一致?

做了个注册表单,想让它自己验证两次输入的密码是否一样

请问题model和view里各要怎么写呢

  • 回复于 2017-05-24 15:09 举报

    ['re_new_password','compare', 'compareAttribute'=>'new_password','message'=>'密码必须一致','on'=>'reset_password']

  • 回复于 2016-12-14 16:45 举报

    你们讲了这么多,这个密码要加密的啊,那该怎么验证呢?其实这里还有一个两次验证的问题,一个是对比一下是不是一致,第二个是再将加密的密码存入数据库,这时SAVE同样也验证了一次,这时要注意两个PASSWORD是要一致的

  • 回复于 2016-11-24 10:17 举报

    rules还要加一行
    ['password2', 'required']

  • 回复于 2013-01-21 04:46 举报

    希望牛人继续研究,分享

  • 回复于 2013-01-17 22:11 举报

    有个问题阿:
    M ActiveRecord

    array('confirmPassword', 'compare', 'compareAttribute'=>'password','on'=>'register','message'=>'密码不一致'),
    

    V

    <?php echo CHtml::textField('pay_repeat'); ?>
    

    这里的重复密码不需要放进数据库,

    <?php echo $form->textField($model,'pay_repeat'); ?>
    

    会报错

    CFormModel
    加,也验证不了,有什么好方法吗?

  • 回复于 2012-09-13 15:56 举报

    学习了,落叶v5

  • 回复于 2012-09-13 11:23 举报

    真牛人!!佩服佩服。

  • 回复于 2012-02-17 16:44 举报
    public function rules()
    {
      return array(
      array('confirmPassword', 'compare', 'compareAttribute'=>'password','on'=>'register','message'=>'密码不一致'),
      );
    }
    
  • 回复于 2012-02-17 16:03 举报

    use compare vlidator

  • 回复于 2012-02-08 21:57 举报

    应该是这样才对。

    array('confirmPassword', 'compare', 'compareAttribute'=>'password','on'=>'register'),
    
  • 回复于 2011-08-04 20:59 举报

    过客同志,这里不应该用FormModel,应该用ActiveRecord

  • 回复于 2011-08-02 14:47 举报

    学习了,呵呵

  • 回复于 2011-04-24 12:07 举报

    可以在RULES里的message选项填加就行了

  • 回复于 2011-04-23 15:06 举报

    我设置了一个一出错就输出,结果就出来这个了。

  • 回复于 2011-04-23 11:52 举报

    你是不是在哪里有输出?

  • 回复于 2011-04-23 11:47 举报

    我一提交注册表单怎么就出来:

    array(1) { ["password"]=> array(1) { [0]=> string(23) "密码 必须被重复." } }
    
  • 回复于 2011-04-23 11:03 举报

    落叶V5

  • 回复于 2011-04-23 10:57 举报

    最后action里

    $user=new User('register')
    
  • 回复于 2011-04-23 10:55 举报

    先在model里定义一个public repeatPassword然后在rules里定义规则

    array('password', 'compare', 'compareAttribute'=>'repeatPassword', 'on'=>'register'),
    view:
    <div class="row">
    <?php echo $form->labelEx($model,'password'); ?>
    <?php echo $form->passwordField($model,'password',array('size'=>60,'maxlength'=>256)); ?>
    <?php echo $form->error($model,'password'); ?>
    </div>
    <div class="row">
    <?php echo $form->label($model,'repeatPassword'); ?>
    <?php echo $form->passwordField($model,'repeatPassword',array('size'=>60,'maxlength'=>256)); ?>
    <?php echo $form->error($model,'repeatPassword'); ?>
    </div>
    
  • 回复于 2011-04-23 10:46 举报

    嗯,北京过客说的没错!我也是这样写的。

    2 条回复
    回复于 2018-03-23 09:15 回复

    这样写前台使用ajax通过getError方法 / $model->getErrors('password2')[0] / 为何还是能获取到---确认密码必须等于“密码”---这个返回值,这个方法不应该是错误之后才把错误信息放数组里吗

    回复于 2018-03-23 12:07 回复

    知道了,ajax只发送了password2,没有把password一起发送过去,所以才会出现这个问题

您需要登录后才可以回复。登录 | 立即注册