Array
(
)

Erro de comparação

Raphael
   - 15 set 2015

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 ?

William (devwilliam)
   - 16 set 2015

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":
Clique na imagem para abrir em uma nova janela

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

Citação:
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.

Citação:
2 - "SELECT * FROM usuario WHERE user == '$login' AND senha == '$senha'"

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

Citação:
3 - WHERE user == '$login' AND senha == '$senha'

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

Segue o código com algumas alterações:
#Código

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

Raphael
   - 16 set 2015

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

William (devwilliam)
   - 16 set 2015

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

Raphael
   - 16 set 2015

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

William (devwilliam)
   - 16 set 2015

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.

Raphael
   - 16 set 2015

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

Raphael
   - 16 set 2015

Editei o codigo mais agora sempre mostra a mensagem de erro mesmo a senha tando certa ou errada
Codigo:
#Código

<?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";
    }
?>

Raphael
   - 16 set 2015

Editei o codigo mais agora sempre mostra a mensagem de erro mesmo a senha tando certa ou errada
Codigo:
#Código

<?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";
    }
?>

William (devwilliam)
   - 17 set 2015

Acabei misturando na postagem a maneira Orientada a Objetos e a Procedural por isso não funcionou, abaixo segue o código funcionando da maneira Orientada a Objetos:

Lembrando que e o correto é trabalhar parametrizado!

#Código

<?php
 
$login = $_POST['textlgoin'];
$senha = $_POST['password'];
 
 
$conexao = new MySQLi('localhost', 'root', 'senha','db');
$query = $conexao->query("SELECT * FROM usuario WHERE user='$login' AND senha='$senha'");
$contagem = $query->num_rows;
     
if ($contagem == 1) {
     echo "Conectado!";
 }
 else{
      echo "Erro";
  }
?>

Raphael
   - 17 set 2015

Muito Obrigado

Raphael
   - 17 set 2015

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

William (devwilliam)
   - 17 set 2015

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

Raphael
   - 17 set 2015

Ok. Vou testa aqui.

Raphael
   - 17 set 2015

Fiz a tabela e mostro