Ir para conteúdo
Fórum Script Brasil
  • 0

Colocar erros de validação do PHP embaixo do input do Form HTML


matheus.del-re

Pergunta

Boa Tarde Amigos.

 

Amigos estou com uma dificuldade enorme para conseguir colocar os erros de validação embaixo dos inputs HTML do meu form, poderiam me ajudar por favor, vou colocar todo meu código HTML e meu código PHP.

<!DOCTYPE html>
<?php
	//BUSCANDO AS CLASSES
	require_once '../classes/Usuario.class.php';
	//ESTANCIANDO A CLASSES
	$objUsuario = new Usuario();
	//FAZENDO O LOGIN
	if(isset($_POST['btnRegistrar'])){
		$objUsuario->queryInsert($_POST);
	}
?>
<html lang="pt-br">
	<head>
		<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
		<meta charset="utf-8">
		<title>Extradder</title>
		<link rel="stylesheet" type="text/css" href="plugins/materialize/css/materialize.min.css"/>
		<link rel="stylesheet" type="text/css" href="css/registrar_style.css">
	</head>

	<body>
		<div class="container" style="margin-top:90px; ">
			<div class="row">
				<div class="col s12 m6 offset-m3">
					<div class="card-panel">
						<h4 class="center">Crie sua Carteira</br>Extrader</h4>	 
						<div class="row">
  							<form class="col s12 m12" method="post" action="">
    							<div class="row">
							      	<div class="input-field col s12 m12">
							        	<i class="material-icons prefix">account_box</i>
								        <input id="icon_prefix" type="text" class="validate" name="nome" pattern="[a-zA-Z\s]+$" required="required" minlength="3" >
								        <label for="icon_prefix" >Primeiro Nome</label>
							      	</div>
      
							      	<div class="input-field col s12 m12">
							        	<i class="material-icons prefix">email</i>
							        	<input id="icon_email" type="text" class="validate" name="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" required="required">
							        	<label for="icon_email">Email</label>
							      	</div>
							        <div class="input-field col s12 m12">
							        	<i class="material-icons prefix">vpn_key</i>
							        	<input id="icon_password" type="password"  class="validate"  name="senha" minlength="8" required="required" onkeyup="checa_seguranca()">
							        	<label for="icon_password">Senha</label>
							        	<div id="pass"></div>
							      	</div>
							      	<div class="input-field col s12 m12">
							        	<i class="material-icons prefix">vpn_key</i>
							        	<input id="icon_password_repeat" type="password" class="validate" name="senha_repete" required="required">
							        	<label for="icon_password_repeat">Repita a Senha</label>
							      	</div>
    							</div>
    							<button class="btn registrar right registrar" type="submit" name="btnRegistrar">Registrar
		    						<i class="material-icons right ">send</i>
		  						</button>
		  						<a  href="login.php" class="btn left login" name="logar">Log In</a>
  							</form>
						</div>
					</div>
				</div>
  			</div>
		</div>
		
		<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
		<script type="text/javascript" src="js/registrar_script.php"></script>
		<script type="text/javascript" src="plugins/materialize/js/materialize.min.js"></script>
		
	</body>
</html>
<?php
//BUSCANDO AS CLASSES
include_once "Conexao.class.php";
include_once "Funcoes.class.php";
include_once "ValidacaoUsuario.class.php";
//CRIANDO A CLASSE
class Usuario{
	//ATRIBUTOS
	private $objusu;
	private $validate;
	private $idUsuario;
	private $nome;
	private $email;
	private $senha;
	private $senha_repete;
	private $dataCadastro;
	//CONSTRUTOR
	public function __construct(){
		$this->objusu = new Funcoes();
	}
	//METODOS MAGICO
	public function __set($atributo, $valor){
		$this->$atributo = $valor;
	}

	public function __get($atributo){
		return $this->$atributo;
	}
	//METODOS
	
	public function queryInsert($dados){
		try{
			$validate = new Validator();

			$this->nome = $this->objusu->tratarCaracter($dados['nome'], 1);
			$this->email = $this->objusu->tratarCaracter($dados['email'], 1);
			$this->senha = $this->objusu->tratarCaracter($dados['senha'], 1);
			$this->senha_repete = $this->objusu->tratarCaracter($dados['senha_repete'], 1);

			$validate->set('Nome', $this->nome)->is_alpha()->is_required();
			$validate->set('Email', $this->email)->is_email()->is_required();
			$validate->set('Senha', $this->senha)->is_required();
			$validate->set('Repitir a Senha', $this->senha_repete)->is_required()->is_equals($this->senha);

			if($validate->validate()){
				$pdo = Conexao::conectar();

				for ($i = 0; $i < 5; $i++) {
					$this->senha = password_hash($dados['senha'], PASSWORD_BCRYPT);
				}
				$this->dataCadastro = $this->objusu->dataAtual(2);
				$cst = "INSERT INTO `ext_usuarios` (`nome`, `email`, `senha`, `data_cadastro`) VALUES (:nome, :email, :senha, :data);";
				$cst = $pdo->prepare($cst);
				$cst->bindParam(":nome", $this->nome, PDO::PARAM_STR);
				$cst->bindParam(":email", $this->email, PDO::PARAM_STR);
				$cst->bindParam(":senha", $this->senha, PDO::PARAM_STR);
				$cst->bindParam(":data", $this->dataCadastro, PDO::PARAM_STR);
				$retorno = $cst->execute();

				if($retorno){
					echo "<div class='spinner'>
					  	<div class='rect1'></div>
					  	<div class='rect2'></div>
					  	<div class='rect3'></div>
					  	<div class='rect4'></div>
					  	<div class='rect5'></div>
						</div>";
					echo "<meta http-equiv=refresh content='3;URL=../templates/dashboard.php'>";
				}else{
					echo "<meta http-equiv=refresh content='1;URL=../templates/registrar.php'>";
				}
			}else{
				$erros = $validate->get_errors();
			    foreach ($erros as $erro){ //Percorre todos os erros
			        foreach ($erro as $err){ //Percorre cada erro do campo especifico
			            echo '<p>' . $err . '</p>';
			        }
			    }
			}			
		}catch(PDOException $e){
			return 'Error: '.$e->getMessage();
		}
	}
}
?>

Por favor poderiam me ajudar ?

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...