Cadastro e Login - #13 Validate Fields
01/10/2018Hoje faremos a primeira validação do sistema. Verificaremos no lado servidor se todos os campos do formulário foram preenchidos pelo usuário.
Validação de campos no PHP
Com intuito de validar os dados recebidos, criaremos primeiramente dentro da pasta helpers o arquivo variables.php. Esse arquivo receberá todas as variáveis do nosso sistema.
<?php
if(isset($_POST['nome'])){$nome=filter_input(INPUT_POST,'nome',FILTER_SANITIZE_FULL_SPECIAL_CHARS);}else{$nome=null;}
if(isset($_POST['email'])){$email=filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL);}else{$email=null;}
if(isset($_POST['cpf'])){$cpf=filter_input(INPUT_POST,'cpf',FILTER_SANITIZE_FULL_SPECIAL_CHARS);}else{$cpf=null;}
if(isset($_POST['dataNascimento'])){$dataNascimento=filter_input(INPUT_POST,'dataNascimento',FILTER_SANITIZE_FULL_SPECIAL_CHARS);}else{$dataNascimento=null;}
if(isset($_POST['senha'])){$senha=$_POST['senha']; $hashSenha='';}else{$senha=null; $hashSenha=null;}
if(isset($_POST['senhaConf'])){$senhaConf=$_POST['senhaConf'];}else{$senhaConf=null;}
$dataCreate=date("Y-m-d H:i:s");
$token=bin2hex(random_bytes(64));
No código acima, para a utilização da função random_bytes() é necessário utilizar o PHP7+. Incluiremos esse arquivo na nossa index principal:
<?php
header("Content-Type: text/html; charset=utf-8");
include("config/config.php");
include(DIRREQ."helpers/variables.php");
include(DIRREQ."lib/vendor/autoload.php");
$dispatch=new Classes\ClassDispatch();
include($dispatch->getInclusao());
Criaremos também a ClassValidate.php que receberá todos os métodos de validação:
<?php
namespace Classes;
class ClassValidate{
private $erro=[];
public function getErro()
{
return $this->erro;
}
public function setErro($erro)
{
array_push($this->erro,$erro);
}
#Validar se os campos desejados foram preenchidos
public function validateFields($par)
{
$i=0;
foreach ($par as $key => $value){
if(empty($value)){
$i++;
}
}
if($i==0){
return true;
}else{
$this->setErro("Preencha todos os dados!");
return false;
}
}
}
O controllerCadastro.php recepcionará a instância da ClassValidate e chamará os métodos de validação:
<?php
$validate=new Classes\ClassValidate();
$validate->validateFields($_POST);
var_dump($validate->getErro());
Debugamos o método getErro() para visualizarmos os retornos de erros do sistema!
Sucesso nos códigos e na vida!