User without duplication

Asked

Viewed 38 times

1

Good guys, I have a screen to register usurer but I want to make that there is only one user with such registration and email, but I do not know where the program starts this part, someone of a force there!!!

<?php 

include("includes/conexao.php");//conexão com o banco

$query = "INSERT INTO usuario (nome, sobrenome, matricula, email, senha) 
      VALUES (:nome, :sobrenome, :matricula, :email, :senha)";

$statement = $connection->prepare($query);


$valores = array();
$valores[':nome'] = (isset($_POST['primeiroNome']) ? $_POST['primeiroNome'] : '');
$valores[':sobrenome'] = (isset($_POST['sobrenome']) ? $_POST['sobrenome'] : '');
$valores[':matricula'] = (isset($_POST['matricula']) ? $_POST['matricula'] : '');
$valores[':email'] = (isset($_POST['email']) ? $_POST['email'] : '');
$valores[':senha'] = (isset($_POST['senha']) ? $_POST['senha'] : '');


        /*--Aqui mostra se a-s senhas se correspondem se sim, ela não faz nada, se não, execulta o script abaixo d-o head*/
    if($_POST) {
            $senha           = $_POST['senha'];
            $confirma_senha  = $_POST['confirma_senha'];
            if ($senha == "") {
                $mensagem = "<span class='aviso'><b>Aviso</b>: Senha não foi alterada!</span>";
            } else if ($senha == $confirma_senha && $statement->execute($valores)) {


            } else {

            }

        }


?>

script to see if it worked to register the user

 <script> 
        function validarSenha(){
        senha = document.formulario.senha.value
        confirma_senha = document.formulario.confirma_senha.value
        if (senha == confirma_senha){
            alert("Usuário cadastrado com sucesso!!")
            return true;


        }
        else{ 
            alert("As Senha não correspondem!!")
            return false;
        }
    }
   </script>

Here is my form

<form method="POST" action="registro.php" onsubmit="return validarSenha()"name="formulario">
            <div class="form-group">
               <div class="form-row">
                  <div class="col-md-6">
                     <label for="primeiroNome">Primeiro nome</label>
                     <input type="text" class="form-control" id="primeiroNome" name="primeiroNome" placeholder="Digite seu primeiro nome" required="required">
                  </div>
                  <div class="col-md-6">
                     <label for="Sobrenome">Sobrenome</label>
                     <input type="text" class="form-control" id="Sobrenome" name="sobrenome" placeholder="Digite seu Sobrenome" required="required" autofocus="autofocus">
                  </div>
               </div>
            </div>
            <div class="col-md-6" id="matricula">
               <label for="primeiroNome">Matrícula</label>
               <input type="text" class="form-control"  name="matricula" placeholder="Digite sua matrícula" required="required" autofocus="autofocus">
            </div>
            <div class="form-group">
               <label for="email">E-mail</label>
               <input type="email" class="form-control" id="email" name="email" placeholder="Digite seu email" required="required" autofocus="autofocus">
            </div>
            <div class="form-group">
               <div class="form-row">
                  <div class="col-md-6">
                     <label for="senha">Senha</label>
                     <input type="password" class="form-control" id="senha" name="senha" placeholder="Digite sua senha" required="required" autofocus="autofocus">
                  </div>
                  <div class="col-md-6">
                     <label for="confirma_senha">confirmar senha</label>
                     <input type="password"  class="form-control" id="confirmaSenha" name="confirma_senha" placeholder="Confirme sua senha" required="required" autofocus="autofocus">
                  </div>
               </div>
            </div>
            <div>
               <input type="submit" class="btn btn-primary btn-block" value="Registra-se"/>
            </div>
            <div class="text-center">
               <a href="#" class="d-block small mt-3">Esqueceu sua senha?</a>
               <a href="login.php" class="d-block small mt-3">Login?</a>
            </div>
         </form>
  • 1

    In fact you make a select that checks if there is already the email or registered registration before doing the Insert.

  • You could define, in the modeling of the comic, that the email value and enrollment are UNIQUE

1 answer

0

Just check if anyone already exists in the bank with the same registration or email, follow the code:

include("includes/conexao.php");//conexão com o banco

$query = "INSERT INTO usuario (nome, sobrenome, matricula, email, senha) 
      VALUES (:nome, :sobrenome, :matricula, :email, :senha)";

$statement = $connection->prepare($query);


$valores = array();
$valores[':nome'] = (isset($_POST['primeiroNome']) ? $_POST['primeiroNome'] : '');
$valores[':sobrenome'] = (isset($_POST['sobrenome']) ? $_POST['sobrenome'] : '');
$valores[':matricula'] = (isset($_POST['matricula']) ? $_POST['matricula'] : '');
$valores[':email'] = (isset($_POST['email']) ? $_POST['email'] : '');
$valores[':senha'] = (isset($_POST['senha']) ? $_POST['senha'] : '');


if($_POST) {
    //Busca no banco a quantidade de usuarios que tenham a mesma matricula OU o mesmo email
    $querySelect = "SELECT count(*) FROM usuarios WHERE matricula = {$valores[':matricula']} or email = {$valores[':email']}";

    //Executa a query
    $check = $pdo->query($querySelect);

    //Obtem o resultado
    $result = $check->fetch(PDO::FETCH_ASSOC);

    //Verificase o valor retornado é 0 (Nenhum usuário igual cadastrado)
    if($result['total'] == 0){

        $senha           = $_POST['senha'];
        $confirma_senha  = $_POST['confirma_senha'];
        if ($senha == "") {
            $mensagem = "<span class='aviso'><b>Aviso</b>: Senha não foi alterada!</span>";
        } else if ($senha == $confirma_senha && $statement->execute($valores)) {


        } else {

        }

    }else{
        $mensagem = "<span class='aviso'><b>Erro</b>: Email ou matricula ja cadastrado!</span>";
    }

}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.