Array
(
)

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

Dalton
   - 30 set 2016

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
#Código<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
#Código<?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.
#Código<?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
   - 30 set 2016

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:

#Código<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:

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