如何在orderigniter中验证表单

时间:2012-12-19 10:05:49

标签: php codeigniter validation

我想像Google一样验证我的登录表单。

首先检查用户名然后检查密码;如果两者都为空,那么用户名框上只有一个错误。

在CodeInginter中,如果两者都为空,则打印每个字段都是必需的消息。

我们可以使用CodeIgnightor轻松模仿此功能吗?

2 个答案:

答案 0 :(得分:0)

在发布一些问题之前,你需要进行研究。 codeIgniter用户指南中提供了这些信息。我提供简单的例子。

查看文件:login.php

   <form action="<?php echo ROOT_FOLDER ?>/controller_name/post_login" method="post" >
                    <p>
                        <label>Email:</label> <?php echo form_error('email'); ?><br />
                        <input type="text" class="text" name="email" value="<?php echo set_value('email'); ?>" />
                    </p>

                    <p>
                        <label>Password:</label> <?php echo form_error('passwd'); ?><br />
                        <input type="password" name="passwd" class="text" value="" />
                    </p>

                    <p>
                        <input type="submit"  class="submit" value="Login" />                               

                    </p>
    </form>

控制器功能,写在控制器文件中..........

 public function post_login()
    {

        $error_in_validation=set_form_validation($this->config->item('login_form'));

        if($error_in_validation){
            show_form_validation_error('controller_file_name/login');
        }
        else
        {
            $email=$this->input->post('email');
            $passwd=$this->input->post('passwd');
            $ret=$this->model_file_name->user_login($email, $passwd);

            if($ret == NULL){

                $model=array();
                $model['error_msg']=$this->config->item('login_form_error_code_1');;
                $this->load->view('controller_file_name/login',$model);             
            } else {
                redirect("ro_manager/home");
            }

        }

    }

在此之后你需要创建你需要在config文件夹中创建一个名为form_validation的文件名。因此,您需要根据用户指南编写验证规则。

     $config['login_form'] = array (
                        array 
                        (
                            'key' => 'email', 
                            'value' => 'Email',
                            'rule' => 'trim|required|valid_email|xss_clean'
                        ),
                        array
                        (
                            'key' => 'passwd', 
                            'value' => 'Password',
                            'rule' => 'trim|required|alpha_numeric|xss_clean'
                        )
                      );

答案 1 :(得分:0)

尝试这样

   $this->form_validation->set_rules('email', 'Email', 'required');

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

    $this->load->view('myform');

   }else{
     $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
     if($this->form_validation->run() == FALSE){
       $this->load->view('myform');
     }
     $this->load->view('formsuccess');
   }