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
verificaEmail.php
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.
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:"
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
Curtir tópico
+ 0
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:
Tenho esse script que enquanto nao estiver da maneira correta, nao deixa enviar o formulario:
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
Clique aqui para fazer login e interagir na Comunidade :)