Ir para conteúdo

POWERED BY:

Arquivado

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

igor.rmarinho

Validação do login

Recommended Posts

Bom dia estou com uma duvida ...

Estou fazendo a parte de acesso a login e estou com dificuldade em validar se ele acho o login e senha corretos.

 

Desse jeito ele sempre retorna true estando certo ou não.

Alguém sabe algum modo de resolver isso?

Ou o que viria na variável $stmt ?

public function verifyUser(){$DAO = new userDAO();$verificaUser = $DAO->validaLogin($this->getUser(), $this->getPassword());	if($verificaUser)	{		echo ("Login ok.");	}else	{		echo("Login fail.");	} }} 

classe dao

public function validaLogin($username,$password){try{$stmt = $this->user->query("SELECT *FROM tb_user_igWHERE user_email = '$username'AND user_password = '$password'");if(!empty($stmt)){return true;}else{return false;}}catch ( PDOException $ex ){  echo "Erro: ".$ex->getMessage(); }}

 

Up.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer apenas retornar TRUE ou FALSE você pode da um return no execute. Assim:

 

	public function validaLogin( $username, $password){
		try{
			$stmt = $this->user->query("
				SELECT * FROM tb_user_ig WHERE user_email = :userName AND user_password = :password"
			);
			
			$stmt->setFetchMode( PDO::FETCH_OBJ );
			
			$stmt->bindValue( ':userName', $username );
			$stmt->bindValue( ':password', $password );
			
			return $stmt->execute();
			
		}catch ( PDOException $ex ){
			echo "Erro: ".$ex->getMessage(); 
		}
	}

 

Se quiser retornar as informações do usuário selecionado:

 

	public function validaLogin( $username, $password){
		try{
			$stmt = $this->user->query("
				SELECT * FROM tb_user_ig WHERE user_email = :userName AND user_password = :password"
			);
			
			$stmt->setFetchMode( PDO::FETCH_OBJ );
			
			$stmt->bindValue( ':userName', $username );
			$stmt->bindValue( ':password', $password );
			
			$stmt->execute();
			
			return $stmt->fetchAll();
			
		}catch ( PDOException $ex ){
			echo "Erro: ".$ex->getMessage(); 
		}
	}

 

	$validar = $DAO->validaLogin($this->getUser(), $this->getPassword());
	
	foreach( $validar as $object ){
		print_r($object) . "<br/>";
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consigo mais editar o post, mas seguinte, na hora fiz na pressa e não me atentei...

 

Aonde está:

 


$this->user->query

na verdade eu quis fazer


$this->user->prepare

 

E no

return $stmt->fetchAll() 

é


return $stmt->fetch();

Que sendo assim não precisa do foreach. :pinch:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua retornando tudo TRUE =|

A consulta no banco está ok.

E está passando os valores corretos na hora de chamar a função.

$verificaUser = $DAO->validaLogin($this->getUser(), $this->getPassword());

 


Faltou algo?

public function verifyUser()
{
$DAO = new userDAO();
//Estou chamando a funcão que criar no DAO que me retorna todos os produtos da categoria informada.
echo('<br>login: '.$this->getUser().'<br>');
echo('Senha: '.$this->getPassword().'<br>');
$verificaUser = $DAO->validaLogin($this->getUser(), $this->getPassword());

	if($verificaUser==true)
	{
		echo ("Login ok.");
	}else
	{
		echo("Login fail.");
	}
 
}

}

 

public function validaLogin($username,$password){
try{
$stmt = $this->user->prepare("SELECT * FROM tb_user_ig WHERE user_email = :userName AND user_password = :password");

$stmt->setFetchMode( PDO::FETCH_OBJ );
			
$stmt->bindValue( ':userName', $username );
$stmt->bindValue( ':password', $password );	
return $stmt->execute();
			

}catch ( PDOException $ex ){  echo "Erro: ".$ex->getMessage(); }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se assim resolve:

 

DAO:

public function validaLogin($username,$password){
try{
$stmt = $this->user->prepare("SELECT * FROM tb_user_ig WHERE user_email = :userName AND user_password = :password");

$stmt->setFetchMode( PDO::FETCH_OBJ );
			
$stmt->bindValue( ':userName', $username );
$stmt->bindValue( ':password', $password );	
$stmt->execute();
return $stmt->fetch();
			

}catch ( PDOException $ex ){  echo "Erro: ".$ex->getMessage(); }
}
	$verificaUser = $DAO->validaLogin($this->getUser(), $this->getPassword());
	if( $verificaUser ){
		echo ("Login ok.");
	}else{
		echo("Login fail.");
	}

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.