验证在登录表单CodeIgniter中输入的错误信息

时间:2015-03-23 10:35:24

标签: model-view-controller codeigniter-2

我的问题似乎是将$ data ['error']数组传递给视图,因为当错误的数据被消失时我没有错误:

我的表单发布到此控制器索引函数:

public function index() {

    $data = array();
    $data['title'] = 'Member Login';

    $this->load->model('auth_model');

    $remember = $this->input->post('remember_me');

    $this->auth_model->process($remember);
    $this->template->content = View::factory('login', $data);

}

这是模型处理功能:

public function process($remember = null){

    $this->load->library('form_validation');
    $this->form_validation->set_rules('email_address', 'Email', 'required|valid_email');
    $this->form_validation->set_rules('password', 'Password', 'required|min_length[8]');

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

        //form validated
        if($res = $this->verify_user($this->input->post('email_address'), $this->input->post('password'))){
            //user verified
        } else {
            $data['errors'] = 'Incorrect username and or Password';
        }
    }
}

在视图中,我使用echo validation_errors();

访问表单错误

如果我提交包含wron数据的表单,我没有收到错误消息......为什么?

此致

1 个答案:

答案 0 :(得分:1)

如图所示更新控制器功能。

 public function index() {

        $data = array();
        $data['title'] = 'Member Login';

        $this->load->model('auth_model');

        $remember = $this->input->post('remember_me');

        $data['errors'] = $this->auth_model->process($remember);
        $this->template->content = View::factory('login', $data);

    }

返回类似如下所示的错误。

public function process($remember = null){

    $this->load->library('form_validation');
    $this->form_validation->set_rules('email_address', 'Email', 'required|valid_email');
    $this->form_validation->set_rules('password', 'Password', 'required|min_length[8]');

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

        //form validated
        if($res = $this->verify_user($this->input->post('email_address'), $this->input->post('password'))){
            //user verified
        } else {
           return 'Incorrect username and or Password';
        }
    }
}