Erro de comparação

15/09/2015

0

Ola, sou Raphael e fiz esse código:
<?php
$login = $_POST['textlogin'];
$senha = $_POST['password'];
$con=mysqli_connect("localhost", "root", "senha", "banco de dados");
$confirmacao = mysqli_query($con, "SELECT * FROM usuario WHERE user == '$login' AND senha == '$senha'"); //verifica se o login e a senha conferem
if ($confirmacao)
{
header ("location:adm25896.html");
}
?>

Bom quando eu o fiz queria que ele conferisse se o login e senha digitado era o mesmo do banco de dados e se ele mandaria para outra pagina.
Alguém pode me ajudar por favor ?
Raphael

Raphael

Responder

Posts

16/09/2015

William

Vamos lá Raphael, imagino que vc seja novo no fórum então primeiro vou passar uma dica, quando for postar trechos de código utilize a tag "code":
[img]http://arquivo.devmedia.com.br/forum/imagem/269142-20150916-070523.png[/img]

Quanto ao seu código, não gosto muito da extensão mysqli pois prefiro PDO, mas seguem algumas observações:

1 - mysqli_query($con, "SELECT * FROM usuario WHERE user == '$login' AND senha == '$senha'");

Jamais execute querys passando o valor direto na string, principalmente valores que vem direto do usuário, trabalhe sempre parametrizado.

2 - "SELECT * FROM usuario WHERE user == '$login' AND senha == '$senha'"

Esse "select *" é uma prática errada, traga somente as colunas que você vai precisar.

3 - WHERE user == '$login' AND senha == '$senha'

Não existe esse operador "==" no MySQL.


Segue o código com algumas alterações:
<?php
$login = $_POST['textlogin'];
$senha = $_POST['password'];

$mysqli = new mysqli('localhost', 'root', 'senha', 'banco');
$stmt = $mysqli->prepare('SELECT campos FROM usuario WHERE user = ? AND senha = ?');
$stmt->bind_param('ss', $email, $senha);
$confirmacao = $stmt->execute(); 	

if($confirmacao){
	echo "Passou";
}



Para conhecer as parametrizações da extensão mysqli acesse essa página http://php.net/manual/pt_BR/mysqli-stmt.bind-param.php

Documentação oficial do MySQL para operadores http://dev.mysql.com/doc/refman/5.6/en/non-typed-operators.html
Responder

16/09/2015

Raphael

Muito Obrigado. E sim sou novo e valeu pela dica.
Responder

16/09/2015

William

Depois que vc testar o código dá um retorno, assim finalizamos como resolvido!
Responder

16/09/2015

Raphael

William, ele ta passando qual quer pessoa mesmo se a senha ou login estiver errado.
Se tiver como vc me passa skype para me da mais uma ajuda agradeço
Responder

16/09/2015

William

Então Raphael, meu skype é willfl2, mas aqui na empresa ele não fica ativo e só chego em casa após as 23:00 hs, se quiser me envia a dúvida por e-mail "wllfl@ig.com.br" que chegando a solução postamos aqui.
Responder

16/09/2015

Raphael

Ok. Obrigado.
Se poder me ensinar as fazer um esquema de login usando banco de dados mysql fico agradecido.
Responder

16/09/2015

Raphael

Editei o codigo mais agora sempre mostra a mensagem de erro mesmo a senha tando certa ou errada
Codigo:
<?php

$login = $_POST['textlgoin'];
$senha = $_POST['password'];


$conexao = new MySQLi('localhost', 'root', 'senha','db');
$query = mysqli_query($conexao, "SELECT user, senha FROM usuario WHERE user='$login' AND senha='$senha'") or die("erro ao selecionar");
	$contagem = mysqli_num_rows($query);
	
	if ($contagem == 1) {
           echo "Conectado!";
           }
         else{
           echo "Erro";
    }
?>
Responder

16/09/2015

Raphael

Editei o codigo mais agora sempre mostra a mensagem de erro mesmo a senha tando certa ou errada
Codigo:
<?php

$login = $_POST['textlgoin'];
$senha = $_POST['password'];


$conexao = new MySQLi('localhost', 'root', 'senha','db');
$query = mysqli_query($conexao, "SELECT user, senha FROM usuario WHERE user='$login' AND senha='$senha'") or die("erro ao selecionar");
	$contagem = mysqli_num_rows($query);
	
	if ($contagem == 1) {
           echo "Conectado!";
           }
         else{
           echo "Erro";
    }
?>
Responder

17/09/2015

Raphael

Muito Obrigado
Responder

17/09/2015

Raphael

Mano sempre mostra a mensagem de erro mesmo a senha estando certa
Responder

17/09/2015

William

Raphael criei uma tabela só para testar esse script, veja se os dados estão sendo passados corretamente!
Responder

17/09/2015

Raphael

Ok. Vou testa aqui.
Responder

17/09/2015

Raphael

Fiz a tabela e mostro
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar