Ir para o conteúdo

Jonatã Cioni'

Cadastrado: 03 Ago 2011
Offline Última atividade: Jan 10 2012 19:00
-----

Códigos que criei

Validação De Campos Com Php

25 novembro 2011 - 11:04

tah tudo bem comentado e explicado, mais... qualquer duvida... é só perguntar...

ah... e preste atenção aos comentarios iniciais que tem instruções de utilização... tah bem explicado tb...

espero poder ajudar alguém...

/*
* Função para validação de campos v1.1
* Autor: Jonatã Luiz Cioni
* Argumento unico array $campos
* modo de usar: testaCampos(array('name_do_input_a_ser_validado' => array("Legenda que aparecera para o usuario, em caso de algum erro","tipo_do_campo")
*
* tipos que podem ser setados:
* string = em caso do campo somente puder ser digitado LETRAS
* inteiro = em caso do campo somente puder ser digitado NUMEROS
* email = validação para campo de email
* telefone = validação para campo de teleofne no formato: (000)0000-0000
* cep = validação de CEP no formato: 00000-000
* cpf_num = validação de CPF no formato: 00000000000
* cpf_num_ponto = validação de CPF no formato 000.000.000-00
*/
function ValidaFormulario(array $campos){
	//seta as variaveis que armazenarão os erros e define elas como array
	$camposVazios = array();
	$camposErrados = array();
	//faz uma foreach para pegar os campos e valida-los
	foreach($campos as $campo => $itens){
		//verifica se o campo da que esta sendo verificado no loop esta vazio
		if(empty($_POST[$campo])){
			$camposVazios[] = strtoupper($itens[0])."<br/>";
		}
		//se não estiver vazio, verifica a compatibilidade dos dados digitados pelo usuario
		if(!empty($_POST[$campo])){
			//se tiver setado o tipo como string, a função valida-o como string
			if($itens[1] == 'string' && !preg_match("/^[a-zA-Z]+$/",$_POST[$campo])){
				$camposErrados[] = "No campo ".strtoupper($itens[0])." você só pode digitar letras<br/>";
			}
			//se tiver setado o tipo como inteiro, a função valida-o como inteiro
			if($itens[1] == 'inteiro' && !preg_match("/^[0-9]+$/",$_POST[$campo])){
				$camposErrados[] = "No campo ".strtoupper($itens[0])." você só pode digitar números<br/>";
			}
			//se tiver setado o tipo como email, a função valida-o como email
			if($itens[1] == 'email' && !preg_match("/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]*[a-z0-9_\-]+\.[a-z]{2,4}$/i",$_POST[$campo])){
				$camposErrados[] = "Digite um E-mail válido no campo ".strtoupper($itens[0])."<br/>";
			}
			//se tiver setado o tipo como telefone, a função valida-o como telefone
			if($itens[1] == 'telefone' && !preg_match("/^\(\d{3}\)[\s-]?\d{4}-\d{4}$/",$_POST[$campo])){
				$camposErrados[] = "Digite o formato correto no campo ".strtoupper($itens[0])." => Correto: (000)0000-0000<br/>";
			}
			//se tiver setado o tipo como cep, a função valida-o como cep
			if($itens[1] == 'cep' && !preg_match("/^[0-9]{5}([-][0-9]{3})$/",$_POST[$campo])){
				$camposErrados[] = "Digite o formato correto no campo ".strtoupper($itens[0])." => Correto: 00000-000<br/>";
			}
			//se tiver setado o tipo como cpf_num, a função valida-o como cpf_num
			if($itens[1] == 'cpf_num' && !preg_match("/^[0-9]{11}$/",$_POST[$campo])){
				$camposErrados[] = "Digite o formato correto no campo ".strtoupper($itens[0])." => Correto: 00000000000<br/>";
			}
			//se tiver setado o tipo como cpf_num_ponto, a função valida-o como cpf_num_ponto
			if($itens[1] == 'cpf_num_ponto' && !preg_match("/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2,2}$/",$_POST[$campo])){
				$camposErrados[] = "Digite o formato correto no campo ".strtoupper($itens[0])." => Correto: 000.000.000-00<br/>";
			}
		}
	}
	//se tiver algum tipo de rro ou campo vazio, entra no if...
	if(count($camposVazios) > 0 || count($camposErrados) > 0){
		//se tiver algum campo vazio... mostra-os
		if(count($camposVazios) > 0){
			$retorno.= "Os seguintes campos Obrigatórios estão vazios:<br/>".implode("",$camposVazios);
		}
		//se tiver campos vazios e campos com erro... pula uma linha para não ficar tudo muito junto
		if(count($camposVazios) > 0 && count($camposErrados) > 0){
			$retorno.= '<br/>';
		}
		//se tiver campos com erros... mostra-os
		if(count($camposErrados) > 0){
			$retorno.= "Ocorreram os seguintes erros:<br/>".implode("",$camposErrados);
		}
	//...se não tiver nenhum erro e nenhum campo vazio... entra no else...
	}else{
		$retorno = 0;
	}
	return $retorno;
}