Como validar formulários no CodeIgniter

Aprenda nesse artigo a utilizar as funções nativas do framework CodeIgniter para validar campos de formulários em PHP.

Porque validar formulários no codeigniter?

No desenvolvimento de qualquer tipo de aplicação, não podemos considerar que os usuários sempre irão fornecer valores corretos e válidos em formulários. Seja por falha humana ou por intenções maliciosas, é possível que valores inválidos sejam submetidos, comprometendo a integridade dos dados e a segurança da aplicação.

Nesse artigo, aprenderemos como validar os valores informados nos campos de formulários utilizando os recursos do framework CodeIgniter, permitindo que apenas dados válidos sejam submetidos.

Passo 1: Configurar a view

A view, nesse exemplo, conterá o formulário de cadastro de um novo usuário, simulando um tipo comum de página que requer a submissão de dados em um site. A partir disso, iremos criar, dentro do diretório view, uma pasta chamada cadastro e, dentro dela, adicionaremos um arquivo formulario.php com o conteúdo da Listagem 1.

01 <?php if(isset($mensagens)) echo $mensagens; ?> 02 <form action="index.php/cadastro/cadastrar" method="post"> 03 <p>Usuário :</p> 04 <input type="text" name="usuario" value="" size="50" /> 05 <p>Senha :</p> 06 <input type="text" name="senha" value="" size="50" /> 07 <p>Confirmar Senha :</p> 08 <input type="text" name="senhaconf" value="" size="50" /> 09 <p>E-mail :</p> 10 <input type="text" name="email" value="" size="50" /> 11 <div><input type="submit" value="Enviar" /></div> 12 </form>
">Listagem 1. View com o formulário de envio do cadastro

Linha 1: Exibimos o retorno da função validation_errors(), que irá devolver quaisquer mensagens de erro retornadas pelo validador. Caso não haja nenhum problema, ela retorna uma string vazia;

Linhas 2 a 12: criamos um formulário básico para exemplificar as validações.

Nossa view irá exibir um formulário conforme o apresentado na Figura 1.


Figura 1. Formulário de registro de novo usuário

Passo 2: Implementar o controller

Agora, devemos criar o controller Cadastro e, nele, inserir uma função pública para exibir nossa página com o formulário. O código dessa função é exposto a seguir:

public function index() { $this->load->view('cadastro/formulario'); }

Logo após, ainda no controller, precisamos criar a função que irá receber os dados e validá-los. Se ocorrerem erros na validação, o controller retorna novamente para a view, que agora irá exibir a(s) mensagem(ns) de erro. Caso a validação seja aprovada, será exibida uma mensagem avisando que o formulário foi enviado com sucesso. O código dessa função pode ser visto na Listagem 2.

01 public function cadastrar() { 02 $this->load->library('form_validation'); 03 $this->form_validation->set_rules('usuario', 'Usuário', 'required|min_length[5]|max_length[12]'); 04 $this->form_validation->set_rules('senha', 'Senha', 'required|min_length[7]', array('required' => 'Você deve preencher a %s.')); 05 $this->form_validation->set_rules('senhaconf', 'Confirmação de Senha', 'required|matches[senha]'); 06 $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); 07 if ($this->form_validation->run() == FALSE) { 08 $erros = array('mensagens' => validation_errors()); 09 $this->load->view('cadastro/formulario', $erros); 10 } else { 11 echo "Formulário enviado com sucesso."; 12 } 13 }

Listagem 2. Função de validação e recebimento do formulário

Linha 2: carregamos a biblioteca responsável pela validação;

Linha 3: inserimos uma regra para validar o campo usuario, definindo o campo como obrigatório, com no mínimo de cinco e no máximo 12 caracteres;

Linha 4: adicionamos uma regra para validar o campo senha, definindo o campo como obrigatório e com no mínimo sete caracteres;

Linha 5: adicionamos outra regra, agora para validar o campo senhaconf, definindo-o como obrigatório e verificando se ele é igual ao campo senha;

Linha 6: inserimos uma regra para validar o campo email, definindo-o como obrigatório e verificando se o dado é um e-mail válido;

Linhas 7: executamos a validação com o método run(), retornando false quando ocorrer algum problema na validação e true quando todas as informações estiverem corretas;

Linha 8: criamos uma variável para repassar para a view as mensagens de erro;

Linha 9: carregamos a view, passando para ela a variável que contém as mensagens de validação;

Linha 11: exibimos a mensagem “Formulário enviado com sucesso”, caso nenhum problema de validação seja encontrado.

Ao terminar nosso controller, podemos acessar o projeto pelo navegador e visualizar a página de cadastro exibida na Figura 1. Nesse momento, se tentarmos enviar o formulário sem nenhum dado, serão exibidas as mensagens de validação conforme a Figura 2.


Figura 2. Mensagens da validação dos campos

Por sua vez, ao simularmos o envio do campo Confirmar Senha com um valor diferente do contido no campo Senha, teremos a mensagem exibida na Figura 3.


Figura 3. Mensagens da validação do campo Confirmar Senha

Passo 3: Entendendo um pouco mais o método set_rules()

O CodeIgniter permite que você defina várias regras de validação para um determinado campo. Para isso, utilizamos o método set_rules(), como no código a seguir:

$this->form_validation->set_rules('usuario', 'Usuário', 'required');

Esse método recebe três parâmetros como entrada:

  1. O nome do campo: aquele que é definido no atributo name do input;
  2. O label do campo: um nome amigável, que será usado na mensagem de erro;
  3. As regras de validação usadas para o campo: A lista de regras pode ser encontrada no site oficial do framework.

Ao concluir essas etapas, teremos nossa aplicação funcionando de forma mais segura, orientando o usuário sobre como proceder caso insira informações inválidas. Além disso, manteremos a integridade do banco de dados, pois somente serão aceitas informações válidas.

Links Úteis

Saiba mais sobre PHP ;)

  • Introdução ao framework PHP CodeIgniter:
    Veja neste artigo uma breve apresentação e introdução ao framework PHP CodeIgniter, que trabalha sobre o modelo MVC e nos fornece diversas ferramentas para agilizar o desenvolvimento das aplicações.
  • Trabalhando com controllers no CodeIgniter:
    Veja neste artigo como funcionam os controllers no framework PHP CodeIgniter, como criar seus controllers e funções.
  • Utilizando templates no CodeIgniter:
    Aprenda como criar e utilizar templates com o framework CodeIgniter e simplifique a construção e o reuso de páginas em suas aplicações.
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados