表格未经验证

时间:2013-05-14 09:00:03

标签: codeigniter

我想验证一个包含两个字段的用户名和密码的表单。当我插入数据CodeIgniter显示错误信息时,虽然我插入了正确的数据。

观点:

<div id="acformulario"> 
    <?php echo validation_errors(); echo form_open('cindice/valida');?>
        <label for="correo" id="dcorreo">Direcci&oacute;n de correo</label>
        <input type="text" name="drcorreo" id="dcc"/><br /><br />
        <label for="contrasenya" id="cont">Contrase&ntilde;a</label>
        <input type="password" name="contrasena" id="cmcont"/><br /><br />
        <!--<label for="enviar"></label>-->
        <input type="submit" name="envia" id="bentrar" value="Entrar"/> 
    </form>
</div>

控制器:

public function valida() 
 {
    $this->input->post('drcorreo');
    $this->input->post('contrasena');

    $this->form_validation->set_rules('correo','Direcci&oacute;n de 
            correo','trim|required|valid_email|xss_clean');
    $this->form_validation->set_rules('contrasenya','Contrase&ntilde;a',
            'trim|required|md5|xss_clean');

    if ($this->form_validation->run()==true)
     {
        echo ("correct");   
     }
    else {

        echo ("wrong");

     }  
 }

当我输入正确或错误的数据时,会显示任何规则消息。例如,两个字段都是必填字段,但是如果我单击带有空字段的提交按钮,我在屏幕上看错了,我应该看用户名是必需的。

出了什么问题?

感谢。

3 个答案:

答案 0 :(得分:0)

首先,你的名字混淆了代码,表单验证使用输入类型的名称作为参数,而不是标签。

如果您的输入名称为drcorreo

然后在set_rules使用

set_rules('drcorreo','Direcci&oacute;n decorreo','trim|required|valid_email|xss_clean');

其中第一个参数是输入字段的名称

答案 1 :(得分:0)

$this->form_validation->set_rules('drcorreo','Direcci&oacute;n de 
            correo','trim|required|valid_email|xss_clean');
$this->form_validation->set_rules('contrasena','Contrase&ntilde;a',
            'trim|required|md5|xss_clean');

$this->form_validation->set_rules('drcorreo','Direcci&oacute;n de correo','trim|required|valid_email|xss_clean'); $this->form_validation->set_rules('contrasena','Contrase&ntilde;a', 'trim|required|md5|xss_clean');

更改set_rules的第一个参数Method..It取输入名称。

答案 2 :(得分:0)

代码已更新:

视图:

<div id="acformulario"> 
    <?php echo validation_errors(); echo form_open('cindice/valida');?>
      <label for="correo" id="dcorreo">Direcci&oacute;n de correo</label>
      <input type="text" name="drcorreo" id="dcc"/><br /><br />
      <label for="contrasenya" id="cont">Contrase&ntilde;a</label>
      <input type="password" name="contrasena" id="cmcont"/><br /><br />
      <input type="submit" name="envia" id="bentrar" value="Entrar" />  
    </form>
</div>

控制器:

public function valida() 
{
  $this->input->post('drcorreo');
  $this->input->post('contrasena');

      $this->form_validation->set_rules('drcorreo','Direcci&oacute;n de   
      correo','trim|required|valid_email|xss_clean');
  $this->form_validation->set_rules('contrasena','Contrase&ntilde;a',
      'trim|required|md5|xss_clean');
      if ($this->form_validation->run()==true)
     {
        echo ("good");  
     }
    else {

        echo ("wrong");

         }  
}