CodeIgniter - Validação de Formulário

A validação é um processo importante durante a construção de um aplicativo da web. Ele garante que os dados que estamos obtendo são adequados e válidos para armazenar ou processar. O CodeIgniter tornou essa tarefa muito fácil. Vamos entender esse processo com um exemplo simples.

Exemplo

Criar um arquivo de visualização myform.php e salve o código abaixo em application/views/myform.php. Esta página exibirá um formulário onde o usuário pode enviar seu nome e nós validaremos esta página para garantir que ela não fique vazia durante o envio.

<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>

Criar um arquivo de visualização formsuccess.php e salve em application/views/formsuccess.php. Esta página será exibida se o formulário for validado com sucesso.

<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>

Crie um arquivo de controlador Form.php e salve em application/controller/Form.php. Este formulário mostrará erros se não for validado corretamente ou redirecionado paraformsuccess.php página.

<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->load->helper(array('form'));
			
         /* Load form validation library */ 
         $this->load->library('form_validation');
			
         /* Set validation rule for name field in the form */ 
         $this->form_validation->set_rules('name', 'Name', 'required'); 
			
         if ($this->form_validation->run() == FALSE) { 
         $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

Adicione a seguinte linha em application/config/routes.php.

$route['validation'] = 'Form';

Vamos executar este exemplo visitando a seguinte URL no navegador. Este URL pode ser diferente com base no seu site.

http://yoursite.com/index.php/validation

Isso produzirá a seguinte tela -

Adicionamos uma validação no controlador - Nameé um campo obrigatório antes de enviar o formulário. Portanto, se você clicar no botão enviar sem inserir nada no campo do nome, será solicitado que você insira o nome antes de enviar, conforme mostrado na tela abaixo.

Após inserir o nome com sucesso, você será redirecionado para a tela conforme mostrado abaixo.

No exemplo acima, usamos a configuração de regra necessária. Existem muitas regras disponíveis no CodeIgniter, que são descritas abaixo.

Referência de regra de validação

A seguir está uma lista de todas as regras nativas que estão disponíveis para uso -

Regra Parâmetro Descrição Exemplo

required

Não Retorna FALSE se o elemento do formulário estiver vazio.

matches

sim Retorna FALSE se o elemento do formulário não corresponder ao do parâmetro. corresponde a [form_item]

regex_match

sim Retorna FALSE se o elemento do formulário não corresponder à expressão regular. regex_match [/ regex /]

differs

sim Retorna FALSE se o elemento do formulário não for diferente daquele no parâmetro. difere [form_item]

is_unique

sim Retorna FALSE se o elemento do formulário não for exclusivo para a tabela e o nome do campo no parâmetro. Nota - Esta regra requer que o Query Builder esteja habilitado para funcionar. is_unique [table.field]

min_length

sim Retorna FALSE se o elemento do formulário for menor que o valor do parâmetro. comprimento_min [3]

max_length

sim Retorna FALSE se o elemento do formulário for maior que o valor do parâmetro. max_length [12]

exact_length

sim Retorna FALSE se o elemento do formulário não for exatamente o valor do parâmetro. comprimento_exato [8]

greater_than

sim Retorna FALSE se o elemento do formulário for menor ou igual ao valor do parâmetro ou não numérico. maior do que [8]

greater_than_equal_to

sim Retorna FALSE se o elemento do formulário for menor que o valor do parâmetro ou não for numérico. maior_que_equal_to [8]

less_than

sim Retorna FALSE se o elemento do formulário for maior ou igual ao valor do parâmetro ou não numérico. menos do que [8]

less_than_equal_to

sim Retorna FALSE se o elemento do formulário for maior que o valor do parâmetro ou não for numérico. menos_que_equal_ a [8]

in_list

sim Retorna FALSE se o elemento do formulário não estiver em uma lista predeterminada. in_list [vermelho, azul, verde]

alpha

Não Retorna FALSE se o elemento do formulário contiver qualquer coisa diferente de caracteres alfabéticos.

alpha_numeric

Não Retorna FALSE se o elemento do formulário contiver qualquer coisa diferente de caracteres alfanuméricos.

alpha_numeric_spaces

Não Retorna FALSE se o elemento do formulário contém qualquer coisa diferente de caracteres alfanuméricos ou espaços. Deve ser usado após o corte para evitar espaços no início ou no final

alpha_dash

Não Retorna FALSE se o elemento do formulário contém qualquer coisa diferente de caracteres alfanuméricos, sublinhados ou travessões.

numeric

Não Retorna FALSE se o elemento do formulário contiver qualquer coisa diferente de caracteres numéricos.

integer

Não Retorna FALSE se o elemento do formulário contém qualquer coisa diferente de um inteiro.

decimal

Não Retorna FALSE se o elemento do formulário contiver qualquer coisa diferente de um número decimal.

is_natural

Não Retorna FALSE se o elemento do formulário contém algo diferente de um número natural - 0, 1, 2, 3, etc.

is_natural_no_zero

Não Retorna FALSE se o elemento do formulário contém qualquer coisa diferente de um número natural, mas não zero - 1, 2, 3, etc.

valid_url

Não Retorna FALSE se o elemento do formulário não contém um URL válido.

valid_email

Não Retorna FALSE se o elemento do formulário não contém um endereço de e-mail válido.

valid_emails

Não Retorna FALSE se algum valor fornecido em uma lista separada por vírgulas não for um e-mail válido.

valid_ip

Não Retorna FALSE se o IP fornecido não for válido. Aceita um parâmetro opcional de 'ipv4' ou 'ipv6' para especificar um formato de IP.

valid_base64

Não Retorna FALSE se a string fornecida contiver qualquer coisa diferente de caracteres Base64 válidos.