匹配密码

时间:2017-07-02 09:36:04

标签: forms codeigniter validation passwords

我的网站上有一个表单,当用户点击添加按钮以及包含passwordpassword confirmation字段的表单时,该表单会成倍增加。

以下是我对密码字段的看法:

<div class="col-md-6 form-group">
    <label>PASSWORD</label>
    <input type="password" name="user_password[]" id="user_password" class="form-control" required>
    <div><?php echo form_error('user_password[]');?></div>
</div>
<div class="col-md-6 form-group">
    <label>CONFIRM PASSWORD</label>
    <input type="password" name="user_confirmpass[]" id="user_confirmpass" class="form-control" required>
    <div><?php echo form_error('user_confirmpass[]');?></div>
</div>

这就是我如何匹配密码(控制器):

$this->form_validation->set_rules('user_password[]', 'Password', 'trim');
$this->form_validation->set_rules('user_confirmpass[]', 'Confirm Password', 'trim|matches[user_password[]]');

因此,如果我只有一个表单,我的网页将能够匹配输入的密码,但如果我有两个或更多表单,我将收到错误{{ 1}}即使确认密码与密码字段匹配。我猜我匹配密码的验证是不正确的。

1 个答案:

答案 0 :(得分:1)

将密码字段名称更改为密码并确认密码为conf_password或confirm_password然后在控制器中制定规则,如

 $config=array(
     array(
          field=>'password',
          label=>'Password',
          rules=>'trim|required'
     ),
     array(
         field=>'confirm_password',
          label=>'Confirm Password',
          rules=>'trim|required|matches[password]'
     )
 );

现在设定规则

 $this->form_validation->set_rules($config);

 // Check it

 if($this->form_validation->run()==false) ....