Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
<?php
include("conexao.php"); //coloque seu arquivo de conexao
$sql = "SELECT * FROM usuarios where email='$email'"
$res = mysql_query($sql);
$row = mysql_num_rows($res);
if($row > 0)
{
echo "1";
}
else
{
echo "0";
}
?>
<HTML>
<head>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function() {
$('#ok').hide();
$('#naook').hide();
$('#nome').change(function(){
var nome = $('#nome').val();
$.ajax({
type: "POST",
url: "verifica_dados.php",
data: "nome="+nome,
dataType: "html",
success: function(xml){
if( xml > "0")
{
$("#ok").show();
}
else
{
$("#naook").show();
}
},
error: function(){
alert("Erro ao verificar os detalhes do usuario!");
}
});
});
});
</script>
</head>
<BODY>
<div id="valida">
<input type="text" name="email" value="" id="nome" placeholder="valida">
</div>
<div id="ok">
e-mail disponivel!
</div>
<div id="naook">
E-mail não disponivel!
</div>
</body>
</html>
Galera é o seguinte, tem esses codigos que fazem a busca no banco de dados, mas eles não estão funcionando corretamente. Quando eu digito um email mesmo ele estando disponivel ou não, a pagina me retorna o valor "E-mail disponivel"... Eu quero é que ela me retorne o valor corretamente, Por exp: Se eu digito um email disponivel eu quero que seja retornado o valor disponivel. e se eu digitar um email não disponivel, eu quero que me retorne que ele não esta disponivel.
o primeiro codigo é da pagina verifica_dados.php
o segundo codigo é da pagina HTML
vamos lá primeiro vamos esclarecer este código que está muito deselegante na visão do programador (você) alguns pontos :
o ajax o data você esta enviando um nome sendo que é um e-mail ... não tem menor sentido, isto também usando o change .. seu sistema será forte candidato a ser ruim assim.
segue as correções e melhorias possíveis com código atual que você tem na parte front end.
http://pastebin.com/UcfJdtG1 (perceba que criei uma função para separa as conclusões em seu success do ajax.)
bom seu php ainda está estruturado e bem mal informado onde se você deseja fazer uma consulta que caso haja resultados em uma verificação o retorno 1 não pode ser bom ... e no seu js você trata ele como se fosse tudo ok sendo que não esta, segundo seu comentário, recomendo para sua própria segurança e manutenção estudar um pouco sobre PDO e POO vai ajudar muito seu desempenho, como citei assima segue as melhorias possíveis no seu código atual ... e lembre-se digite um código coerente com os dados.
Não funcionou.
Ta dando o mesmo erro que eu tinha falado
Na linha 4 do segundo arquivo que o Keven te passou tem um pequeno erro com a aspa, você corrigiu?
$sql = "SELECT * FROM usuarios where email='".$email."';
// to
$sql = "SELECT * FROM usuarios where email='".$email."'";
// or
$sql = "SELECT * FROM usuarios where email='{$email}' ";
Verifique se os dados estão corretos... Insira esse segundo arquivo na página inicial só para teste...
......
<body>
<?php
include("conexao.php");
$email = $_POST['email'];
$sql = "SELECT * FROM usuarios";
$res = mysql_query($sql);
var_dump( mysql_fetch_array($res));
?>
<div id="valida">
<input type="text" name="email" id="email" placeholder="valida">
</div>
.....
**Lembrando que seu código é vulnerável a Injeção de SQL e que as funções mysql_* foram depreciadas a partir do PHP 5.5.x.**
http://www.php.net//manual/pt_BR/security.database.sql-injection.php
Na linha 3 está assim:
$sql = "SELECT * FROM usuarios where email='$email'"
Você está usando a variável $email, mas não a declarou.
Lembrando que não é bom jogar uma consulta do usuário diretamente em uma consulta SQL, fica sujeito a injeções SQLs...
>
php.net
http://www.php.net/manual/pt_BR/security.database.sql-injection.php