为什么CodeIgniter的表单验证没有验证任何东西


Why isn't CodeIgniter's form validation not validating anything?

由于 AngularJS 中的错误,我比以往任何时候都更需要让 CodeIgniter 验证我的注册表。

我已经做了我能想到的一切来解决这个问题。也许它只是需要一双不同的眼睛?或者也许有人以前处理过这个问题?

    public function register_validation() {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('username', 'Username',
            'required|trim|is_unique[users.username]|max_length[32]');
        $this->form_validation->set_rules('password', 'Password',
            'required|trim|min_length[6]');
        $this->form_validation->set_rules('email', 'Email',
            'required|trim|valid_email|is_unique[users.email]');
        if($this->form_validation->run()) {
            echo "Pass!";
        } else {
            echo "NOPE!";
            $this->load->view('home');
        }
    }

这一行:

$this->form_validation->set_rules('username', 'Password',
            'required|trim|min_length[6]');

应该是:

$this->form_validation->set_rules('password', 'Password',
            'required|trim|min_length[6]');

你用了两次username。您应该将run()检查更改为:

if($this->form_validation->run() == FALSE))
{
    echo "NOPE!";
    $this->load->view('home');
}
else
{
    echo "Pass!";
}

此行是正确的

$this->form_validation->set_rules('username', 'Username',
        'required|trim|is_unique[users.username]|max_length');
第一个用户名是

您的字段名称,第二个用户名是错误中显示的用户名。

但是这条线

this->form_validation->set_rules('username', 'Password',
        'required|trim|min_length[6]');
在这里,您使用了

已经验证的用户名,而不是您使用的用户名 密码

应用条件的方法有很多种

第一个是

if($this->form_validation->run() == FALSE)) {
    $this->load->view('home');
} else {
    echo "Pass!";
}

第二个是

if($this->form_validation->run() != FALSE) {
     echo "Pass!";
} else {
     $this->load->view('home');
}

更改

    if($this->form_validation->run()) {

    if($this->form_validation->run($this)) {
相关文章: