Verificar se o email preenchido já existe no banco de dados em “TEMPO REAL”

30/09/2016

0

Tenho um formulário para cadastro, mas preciso que ao preencher o campo e-mail, quando a pessoa passa para o próximo campo, ele busque no banco de dados e retorne uma mensagem avisando se já estiver este e-mail cadastrado no banco de dados. Conforme algumas perguntas que eu encontrei aqui e em outros lugares, cheguei nesse metodo:

register.php - Aqui esta trecho JS e a INPUT
<script language="javascript">
    var email = $("#email"); 
        email.blur(function() { 
            $.ajax({ 
                url: 'verificaEmail.php', 
                type: 'POST', 
                data:{"email" : email.val()}, 
                success: function(data) { 
                console.log(data); 
                data = $.parseJSON(data); 
                $("#resposta").text(data.email);
            } 
        }); 
    }); 
</script>

<input id="email" name="email" type="text" value="" placeholder="Digite seu e-mail" required>
<div id="resposta"></div>



verificaEmail.php
<?php
#Verifica se tem um email para pesquisa
if(isset($_POST['email'])){ 

    #Recebe o Email Postado
    $emailPostado = $_POST['email'];

    #Conecta banco de dados 
    $con = mysqli_connect("localhost", "root", "", "academia");
    $sql = mysqli_query($con, "SELECT * FROM usuarios WHERE Email = '{$emailPostado}'") or print mysql_error();

    #Se o retorno for maior do que zero, diz que já existe um.
    if(mysqli_num_rows($sql)>0) 
        echo json_encode(array('email' => 'Ja existe um usuario cadastrado com este email')); 
    else 
        echo json_encode(array('email' => 'Usuário valido.' )); 
}
?>


Mas ele não esta funcionando. Alguém pode me ajudar a resolver isso, como não intendo muito de jQuery e PHP, estou sofrendo um pouco nisso. Não sei se é necessário, mas aqui esta o PHP para cadastrar que esta no ACTION do FORM.

<?php

/* substitua as variáveis abaixo pelas que se adequam ao seu caso */
$dbhost = 'localhost'; // endereco do servidor de banco de dados
$dbuser = 'root'; // login do banco de dados
$dbpass = ''; // senha
$dbname = 'academia'; // nome do banco de dados a ser usado

$conecta = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$seleciona = mysqli_select_db($conecta, $dbname);

$nome       = $_POST ["nome"];  
$sobrenome  = $_POST ["sobrenome"];
$email      = $_POST ["email"];
$senha      = $_POST ["senha"];
$telefone   = $_POST ["telefone"];
$ddd        = $_POST ["ddd"];

$sqlinsert = "INSERT INTO usuarios (ID, Nome, Sobrenome, Email, Senha, Telefone, DDD) VALUES (DEFAULT, '$nome', '$sobrenome', '$email', '$senha', '$telefone', '$ddd')";
$inserenome = mysqli_query( $conecta, $sqlinsert );

// inicia a conexao ao servidor de banco de dados
if(! $conecta )
{
  die("<br />Nao foi possivel conectar: " . mysql_error());
}
echo "<br />Conexao realizada!";

// seleciona o banco de dados no qual a tabela vai ser criada
if (! $seleciona)
{
  die("<br />Nao foi possivel selecionar o banco de dados $dbname");
}
echo "<br />Selecionado o banco de dados $dbname";

// finalmente, cria a tabela 
if(! $inserenome )
{
  die("<br />Nao foi possivel inserir registro: " . mysql_error());
}
echo "<br />Um novo registro foi feito!";
// encerra a conexão
mysqli_close($conecta);

?>


Haa, e o email esta como UNIQUE no MYSQL, por isso quando n tinha esse JS e o verificaEmail, quando eu tentava cadastrar um email ja existente, ele simplesmente n cadastrava e mostrada o "Nao foi possivel inserir registro:"
Dalton

Dalton

Responder

Posts

30/09/2016

Dalton

Consegui solucionar, só tem mais uma questão, agora mesmo eu colocando algum email que ja esta cadastrado, ele diz que ja existe e tudo mais, só que ele cadastra igual.
Exemplo, no meu campo repita a senha:

<li><input name="senha_confirma" type="password" value="" placeholder="Confirme sua senha" required oninput="validaSenha(this)"></li>


Tenho esse script que enquanto nao estiver da maneira correta, nao deixa enviar o formulario:

<script>
function validaSenha (input){ 
	if (input.value != document.getElementById(''''txtSenha'''').value) {
    input.setCustomValidity(''''As senhas não coecidem!'''');
  } else {
    input.setCustomValidity('''''''');
  }
}
</script>
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar