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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar