Validação
Olá, boa noite à todos!
Estou tendo algumas dificuldades em achar a melhor forma possível de validar um formulário, um cadastro...
Irei deixar aqui logo abaixo o exemplo de como estou usando em teste, está funcionando mas não tenho certeza se é o método certo.
<?php
public function insert() {
if(isset($usuario) && isset($nomesobrenome) && isset($email) && isset($senha)) {
if(empty($usuario) OR empty($nomesobrenome) OR empty($email) OR empty($senha)) {
echo 'Há campos vazios.';
}
}else {
$verifica = DB::prepare("SELECT * FROM {$this->table} WHERE usuario=:usuario OR nomesobrenome=:nomesobrenome OR email=:email");
$verifica->bindValue(':usuario',$this->usuario,PDO::PARAM_STR);
$verifica->bindValue(':nomesobrenome',$this->nomesobrenome,PDO::PARAM_STR);
$verifica->bindValue(':email',$this->email,PDO::PARAM_STR);
$verifica->execute();
if($verifica->rowCount() == 0) {
$sql = "INSERT INTO $this->table (usuario, nomesobrenome, email, senha) VALUES (:usuario, :nomesobrenome, :email, :senha)";
$stmt = DB::prepare($sql);
$stmt->bindParam(':usuario', $this->usuario);
$stmt->bindParam(':nomesobrenome', $this->nomesobrenome);
$stmt->bindParam(':email', $this->email);
$stmt->bindParam(':senha', $this->senha);
return $stmt->execute();
}else {
return false;
}
}
}
Estou estudando OO e PDO. Neste formulário existe 4 campos e, um adicional que é os termos, um checkbox.
Eu quero verificar os seguintes campos.
Usuário, Nome, E-mail
Se não existir dados iguais em cada campo ele concede a permissão para enviar ao banco de dados, se não o script mostra os erros na tela do usuário. Li alguns artigos no Google, encontrei um que entendi melhor, ele pediu para criar uma variável.
//Cria uma variável que terá os dados do erro
$erro = false;
//Verifica se o POST tem algum valor
if(!isset($_POST) || empty($_POST )) {
$erro = 'Nada foi postado.';
}
//Cria as variáveis dinamicamente
foreach($_POST as $chave => $valor) {
//Remove todas as tags HTML
//Remove os espaços em branco do valor
$$chave = trim(strip_tags($valor));
//Verifica se tem algum valor nulo
if(empty($valor)) {
$erro = 'Existem campos em branco.';
}
}
//Verifica se $email realmente existe e se é um email.
//Também verifica se não existe nenhum erro anterior
if((!isset($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) && !$erro) {
$erro = 'Envie um email válido.';
}
//Se existir algum erro, mostra o erro
if($erro) {
echo $erro;}else{
//Se a variável erro continuar com valor falso
//Você pode fazer o que preferir aqui, por exemplo,
//enviar para a base de dados, ou enviar um email
//Tanto faz. Vou apenas exibir os dados na tela.
echo "<h1>Veja os dados enviados</h1>";
foreach($_POST as $chave => $valor) {
echo '<b>' . $chave . '</b>: ' . $valor . '<br><br>';
}
}
A partir disso eu preciso criar os famosos "if", até aí tudo bem, mas como eu coloco no meu script? Fiz algumas tentativas e não conseguir. Poderiam me auxiliar neste assunto?Discussão (1)
Carregando comentários...