I have a registration form, but I need to fill in the email field, when the person moves to the next field, he searches the database and returns a message telling me if this email is already registered with the bank of data. As per some questions I found here and elsewhere, I came up with this method:
register.php - Here is an excerpt from JS and 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>
VerifyEmail.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.' ));
}
?>
But it is not working. Can anyone help me solve this, as I do not understand much of jQuery and PHP, I'm suffering a little bit on this. I do not know if it is necessary, but here is the PHP to register that it is in FORM's ACTION.
<?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, and the email is UNIQUE in MYSQL, so when I did not have this JS and verified it, when I tried to register an existing email, it simply did not register and it was "Could not insert record:"