Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

andrevrcoelho

fazer consulta no banco de dados.

Recommended Posts

<?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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha 3 está assim:

$sql = "SELECT * FROM usuarios where email='$email'"

Você está usando a variável $email, mas não a declarou.

$email = $_GET['email'];

$sql = "SELECT * FROM usuarios WHERE email='{$email}' "

Lembrando que não é bom jogar uma consulta do usuário diretamente em uma consulta SQL, fica sujeito a injeções SQLs...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

http://pastebin.com/316Jk0jF

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

http://www.php.net/manual/pt_BR/migration55.deprecated.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.