Ir para conteúdo

POWERED BY:

Arquivado

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

raphaelwilker

[Resolvido] Busca usuario no banco de dados e valida ele

Recommended Posts

Bom gente estou com uma baita de uma duvida. http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Estou tentando fazer uma validação de login e senha só que para validar quero verificar se o usuário e senha estão realmente no banco de dados, caso não avise que a sessão não foi possivel iniciar.

olhem o meu codigo :

<?php
##Faz chamada para a pagina que acessa o database.
	include("conectado.php");
	include("testepagina.php");
####incia a sessão
	session_start();
	$_SESSION['campo_usuario']= $_POST['campo_usuario'];
	$_SESSION['senha']= $_POST['senha'];
##### VERIFICA OS VALORES SE ESTÃO NO BANCO DE DADOS.	
		$confirma_valor1 =  mysql_query("SELECT * FROM `usuarios` WHERE `cpf`=".$_SESSION['campo_usuario']."")or die(mysql_error());
		$confirma_valor2 =  mysql_query("SELECT * FROM `usuarios` WHERE `senha`=".$_SESSION['senha']."")or die(mysql_error());
		//$res1= mysql_num_rows($confirma_valor1);
#####Problema de logica aqui !	
		if(($confirma_valor1 = $_SESSION['campo_usuario'])&&($confirma_valor2 = $_SESSION['senha']))
		{
				echo "você finalmente logou !";
		}
		else
				
			{
				
				echo "a sessão não pode ser iniciada";
			}
		
	
		
?>
Quem puder me ajudar thank very much ! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua condição esta errada, a função mysql_query() retorna um recurso do mysql que deve ser acessado usando mysql_fetch_array() ou mysql_num_rows() (http://php.net/manual/en/function.mysql-query.php). E também você não precisar fazer duas consultas no banco, basta fazer uma com as duas condições juntas, veja uma versão melhorada do seu código:

<?php

##Faz chamada para a pagina que acessa o database.
include("conectado.php");
include("testepagina.php");

####incia a sessão
session_start();
$_SESSION['campo_usuario']= $_POST['campo_usuario'];
$_SESSION['senha']= $_POST['senha'];

##### VERIFICA OS VALORES SE ESTÃO NO BANCO DE DADOS.	
$confirma_valor =  mysql_query("SELECT * FROM `usuarios` WHERE `cpf`=".$_SESSION['campo_usuario']." and `senha`=".$_SESSION['senha']."")or die(mysql_error());
$res1 = mysql_num_rows($confirma_valor1);

#####Problema de logica aqui !	
if($res1) {
    echo "você finalmente logou !";
} else {
    echo "a sessão não pode ser iniciada";
}

?>

E melhore sua identação (http://cobaia.net/2009/03/php-coding-standard-boas-maneiras-no-codigo-parte-1/ ) vai ficar muito mais fácil programar....

XD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara muito obrigado ! :lol:

Porem surgiu um problema.

Vamos supor que o usuário tenha uma senha que seja só letras, quando o usuário digita as senhas a seguinte mensagem :

 

Unknown column 'www' in 'where clause'

 

Pelo que eu entendi ele está buscando uma coluna e isso não é a intenção :o

Mas mesmo assim a validação funciona.

Se caso alguem não souber eu me viro e desde já agradeço mais uma vez a sua ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso passou despercebido aqui, mas o problema é que está faltando um par de aspas ali na senha,

...("SELECT * FROM `usuarios` WHERE `cpf`=".$_SESSION['campo_usuario']." and `senha`='".$_SESSION['senha']."'")or die(mysql_error());
Coloque aspas sempre que for utilizar strings em uma consulta.

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.