为什么CodeIgniter的表单验证没有验证任何内容?

时间:2013-09-17 04:16:53

标签: php codeigniter validation

由于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');
        }

    }

3 个答案:

答案 0 :(得分:0)

这一行:

$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!";
}

答案 1 :(得分:0)

这一行是正确的

$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');
}

答案 2 :(得分:0)

更改

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

    if($this->form_validation->run($this)) {
相关问题