【问题标题】:how to validate form in a order codeigniter如何在订单codeigniter中验证表单
【发布时间】:2012-12-06 15:44:49
【问题描述】:

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

先查用户名再查密码;如果两者都为空,则用户名框上只有一个错误。

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

我们能否使用 CodeIgnightor 轻松模仿此功能?

【问题讨论】:

  • 您好,请阅读以下内容:meta.stackexchange.com/questions/56817/… - 谢谢!我批准了编辑,短信简写不适合这个网站...
  • 抱歉短信打字,我的错。
  • 我通常在客户端进行“谷歌风格”验证,并最终验证两个服务器端。如果缺少一个或另一个,客户端验证应该通常阻止提交,这使得抱怨两者的消息极为罕见。这也消除了控制器中的很多麻烦。
  • 是的,我想这是我错过的东西。谢谢蒂姆
  • 但是有没有办法覆盖 CI 方法?

标签: php codeigniter validation


【解决方案1】:

您需要在发布一些问题之前进行研究。这些信息可在 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'
                        )
                      );

【讨论】:

  • 好吧,我想你误解了我的意思。我可以使用 CI api 显示错误消息。甚至,在您的表单中提交的是空字符串,然后我们会收到 2 条错误消息。我不需要那个,只显示用户名是空的。
  • 如果你检查谷歌日志验证,我想你可以理解我
【解决方案2】:

这样试试

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 2016-09-05
  • 2021-10-09
相关资源
最近更新 更多