Classe para validação de dados com PHP

Quem programa na web ou mesmo quem trabalha em relação a web, muitas vezes se depara com formulários e consequentemente com a validação de dados. Porém, eu desenvolvi uma simples classe para que a validação dos dados seja de forma mais rápida, pois você não precisa ficar repetindo o código toda vez que precisar validar os dados do formulário.

Antes de mais nada, clique aqui para baixar o arquivo de validação.

Esta classe valida os seguintes tipos de dados:

// Email
validarEmail('valor');

// CEP (XXXXX-XXX)
validarCep('valor');

// Data (DD/MM/AAAAA)
validarData('valor');

// Telefone (01433333333)
validarTelefone('valor');

// CPF (11111111111)
validarCpf('valor');

// IP (192.168.10.1)
validarIp('valor');

// Numero (1,200,500)
validarNumero('nomedoCampo', 'valor');

// Url (http://www.google.com.br)
validarUrl('valor');

// Campo vazio, Mínimo/Máximo de Caracteres
validarCampo('nomedoCampo', 'valor', 'maximo', 'minimo');

Primeiramente, é necessário incluir o arquivo de validação:

<?php
include("validacao.php");
?>

ou

<?php
require_once("validacao.php");
?>

Agora já podemos trabalhar com a classe. Vamos supor que o usuário já preencheu um formulário e nesse arquivo iremos receber os dados dele:

<?php
// Incluimos o arquivo de validação
include("validacao.php");

// Obtemos os dados do formulário
$nome = $_POST["nome"]; // Nome do usuário
$email = $_POST["email"]; // Email do usuário
$cep = $_POST["cep"]; // CEP do usuário
$id = $_POST["id"]; // ID do usuário
$site = $_POST["site"]; // Website do usuário
?>

O código acima é somente um exemplo para podemos entender como funciona a classe. Bom, acho que até aqui nenhum segredo, certo? É agora que entra a classe de validação, antes de mais nada precisamos instanciar a classe:

<?php
// Incluimos o arquivo de validação
include("validacao.php");

// Obtemos os dados do formulário
$nome = $_POST["nome"];
$email = $_POST["email"];
$cep = $_POST["cep"];
$id = $_POST["id"];
$site = $_POST["site"];

// Instanciamos a classe
$v = new validacao;
?>

Já com a classe instanciada, podemos iniciar a validação dos dados, para validarmos o nome por exemplo, vamos utilizar o validarCampo, ou seja:

<?php
// Incluimos o arquivo de validação
include("validacao.php");

// Obtemos os dados do formulário
$nome = $_POST["nome"];
$email = $_POST["email"];
$cep = $_POST["cep"];
$id = $_POST["id"];
$site = $_POST["site"];

// Instanciamos a classe
$v = new validacao;
echo $v->validarCampo("Nome", $nome, "25", "2");
/* Caso o nome esteje em branco, tenha mais de 25 caracteres
ou menos de 2 caracteres será retornado um erro */
?>

Agora validamos os outros dados com suas devidas funções:

<?php
// Incluimos o arquivo de validação
include("validacao.php");

// Obtemos os dados do formulário
$nome = $_POST["nome"];
$email = $_POST["email"];
$cep = $_POST["cep"];
$id = $_POST["id"];
$site = $_POST["site"];

// Instanciamos a classe
$v = new validacao;
echo $v->validarCampo("Nome", $nome, "25", "2");
echo $v->validarEmail($email);
echo $v->validarCep($cep);
echo $v->validarNumero("ID", $id);
echo $v->validarUrl($site);
?>

Além da verificação dos dados, temos que saber se houve algum erro para podermos, por exemplo, inserir os dados no banco de dados. Para isso, a classe também tem a função verifica(), que vai verificar se houve algum erro nos dados:

<?php
// Incluimos o arquivo de validação
include("validacao.php");

// Obtemos os dados do formulário
$nome = $_POST["nome"];
$email = $_POST["email"];
$cep = $_POST["cep"];
$id = $_POST["id"];
$site = $_POST["site"];

// Instanciamos a classe
$v = new validacao;
echo $v->validarCampo("Nome", $nome, "25", "2");
echo $v->validarEmail($email);
echo $v->validarCep($cep);
echo $v->validarNumero("ID", $id);
echo $v->validarUrl($site);

/* Caso não haja nenhum erro,
realizamos as ações necessárias com os dados */
if ($v->verifica()) {
echo "Os dados estão OK";
}
?>

Pronto, conseguimos validar os dados com um código menor e em menos tempo. Você também pode alterar as mensagens de erro no validacao.php, logo no início do código é possível customizar as mensagens de acordo com sua necessidade:

<?php
class validacao {
	var $campo;
	var $valor;
	var $msg = array();

	// Mensagens de erro
	function mensagens($num, $campo, $max, $min) {

		$this->msg[0] = "Preencha o campo com um email válido <br />"; // EMAIL
		$this->msg[1] = "CEP com formato inválido (Ex: XXXXX-XXX) <br />"; // CEP
		$this->msg[2] = "Data em formato inválido (Ex: DD/MM/AAAA) <br />"; // DATA
		$this->msg[3] = "Telefone inválido (Ex: 01433333333) <br />"; // TELEFONE
		$this->msg[4] = "CPF inválido (Ex: 11111111111) <br />"; // CPF
		$this->msg[5] = "IP inválido (Ex: 192.168.10.1) <br />"; // IP
		$this->msg[6] = "Preencha o campo ".$campo." com numeros <br />"; // APENAS NUMEROS
		$this->msg[7] = "URL especificada é inválida (Ex: http://www.google.com) <br />"; // URL
		$this->msg[8] = "Preencha o campo ".$campo." <br />"; // CAMPO VAZIO
		$this->msg[9] = "O ".$campo." deve ter no máximo ".$max." caracteres <br />"; // MÁXIMO DE CARACTERES
		$this->msg[10] = "O ".$campo." deve ter no mínimo ".$min." caracteres <br />"; // MÍNIMO DE CARACTERES

		return $this->msg[$num];
	}

       # [....]
?>

Você pode editar a classe de acordo com sua necessidade, pois talvez não seja muito flexível, porém por diminuir nosso código, pode ser muito útil no dia-a-dia.