- Código: Selecionar tudo
<?php
/**
* Classe Para validação da Dados
* @author David CHC
* @version 0.1
*
*/
class Validacao {
/**
* Atributo que receberá os valores dos dados da validação
* e o nome do campo
* @var ARRAY $dados
*/
private $dados;
/**
* Atributo que receberá as mensagens de erro
* @var ARRAY $erro
*/
private $erro = array();
/**
* Método que recebe os valores de validação e nome do campo
* @param STRING $valor
* @param STRING $nome
* @return $this (retorna o próprio objeto)
*/
public function set($valor, $nome) {
$this->dados = array("valor" => trim($valor), "nome" => $nome);
return $this;
}
/**
* Método que verifica se é o valor é obrigatório
* @return $this (retorna o próprio objeto)
*/
public function obrigatorio() {
if (empty($this->dados['valor'])) {
$this->erro[] = sprintf("O campo %s é obrigatório", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se o email é válido
* @return $this (retorna o próprio objeto)
*/
public function email() {
if (!filter_var($this->dados['valor'], FILTER_VALIDATE_EMAIL)) {
$this->erro[] = sprintf("O campo %s só aceita um e-mail válido", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se a data esta no formato dd-mm-YYYY
* @return $this (retorna o próprio objeto)
*/
public function data() {
//99-99-9999
if (!preg_match("/^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$/", $this->dados['valor'])) {
$this->erro[] = sprintf("O campo %s só aceita no formato 99-99-9999", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se o telefone está no formato (99)9999-9999
* @return $this (retorna o próprio objeto)
*/
public function tel() {
//(99)9999-9999
if (!preg_match("/^\([0-9]{2}\)[0-9]{4}\-[0-9]{4}$/", $this->dados['valor'])) {
$this->erro[] = sprintf("O campo %s só aceito o formato (99)9999-9999", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se teve alguma mensagem de erro
* @return BOOLEANO (true/false)
*/
public function validar() {
if (count($this->erro) > 0) {
return false;
} else {
return true;
}
}
/**
* Método que retorna os erros encontrados
* @return ARRAY $erro
*/
public function getErrors() {
return $this->erro;
}
}
?>
A mesma classe só pastebin: http://pastebin.com/NW84BQiG
Como utilizar:
- Código: Selecionar tudo
<?php
/**
* Verifica se existe um método post
*/
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//inclui a classe Validacao.class.php
require("Validacao.class.php");
//Instancia a classe Validacao
$val = new Validacao();
//Guarda a Variavel Global $_POST
$p = $_POST;
//Chama o Método set() atribuitndo o valor e nome do campo, e a verificação
$val->set($p['nome'], 'Nome')->obrigatorio();
$val->set($p['email'], 'E-mail')->email();
$val->set($p['telefone'], 'Telefone')->tel();
//Verifica se ocorreu algum erro
if ($val->validar()) {
echo 'Passou';
} else {
//se ocorreu algum erro, lista todos os erros
foreach ($val->getErrors() as $erro) {
echo "$erro <br />";
}
}
}
?>
Arquivo completo no index.php : http://pastebin.com/2sxEFCQU
Arquivo CSS: style.css
- Código: Selecionar tudo
*{margin:0; padding:0}
form{
width:400px;
margin:0 auto;
}
form label{
display:block;
padding:3px 0;
}
form label span{
display:block;
width:80px;
float:left;
}
form label input{
padding:3px 0;
}
