Ir para conteúdo
Fórum CódigoFonte.net
  • Anúncios

    • codigofonte

      Novo Fórum

      Pessoal, Atualizamos nossa versão do fórum para a mais recente da Invision Power. Como tínhamos uma versão muito antiga, talvez algumas áreas possam funcionar de forma errada ou com problemas, gostaria de pedir-lhes a compreensão, pois iremos resolvendo aos poucos. Até mais!
matheus.del-re

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

Recommended Posts

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._%+-][email protected][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();
        }
    }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fico tipo assim:

//index.php
require_once('valida.class.php');

if(isset($_POST['enviar']))
{
    $validacao = new Valida();
    $nome = $validacao->validaNome();
    $sobrenome = $validacao->validaSobrenome();
}

<form action="index.php" method="POST">
<input id="icon_prefix" type="text" class="validate" name="nome" pattern="[a-zA-Z\s]+$" required="required" minlength="3" >
<?php
if(isset($nome) && $nome == FALSE)
{
    echo '<label>O campo <b>NOME</b> não pode ser em branco.</label>';
}
?>
<input id="icon_prefix" type="text" class="validate" name="sobrenome" pattern="[a-zA-Z\s]+$" required="required" minlength="3" >
<?php
if(isset($sobrenome) && $sobrenome == FALSE)
{
    echo '<label>O campo <b>SOBRENOME</b> não pode ser em branco.</label>';
}
?>
<input type="submit" name="enviar">
</form>

//valida.class.php
<?php
class Valida
{
    
    public function validaNome()
    {
        if(isset($_POST['nome']) && !empty($_POST['nome']))
        {
            return TRUE;
        } 
        else 
        {
            return FALSE;
        }
    }

    public function validaSobrenome()
    {
        if(isset($_POST['sobrenome']) && !empty($_POST['sobrenome']))
        {
            return TRUE;
        } 
        else 
        {
            return FALSE;
        }
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×