Problema com sistema de login, se usuario estiver correto, ele faz login mesmo com senha errada. [RE

1. Problema com sistema de login, se usuario estiver correto, ele faz login mesmo com senha errada. [RE

Rui Guilherme da Cunha
RuiGuilherme

(usa Manjaro Linux)

Enviado em 20/07/2017 - 21:31h

Como já expliquei se você digitar um Usuário que não existe no banco, ele não faz login, até aí está certo, mas se eu digitar um usuário que está no banco ele faz login mesmo com a senha errada.

Estrutura do meu banco de dados:
https://imgur.com/a/cu9sq



<form class="form-horizontal" action="" method="POST" enctype="multipart/form-date">
<fieldset>

<div class="form-group">
<label class="col-md-4 control-label" for="idUsuario">Digite o usuário/e-mail</label>
<div class="col-md-5">
<input id="idUsuario" name="idUsuario" type="text" placeholder="Login" class="form-control" required>
</div>
</div>

<div class="form-group">
<label class="col-md-4 control-label" for="idSenha">Senha</label>
<div class="col-md-5">
<input id="idSenha" name="idSenha" type="password" placeholder="Digite a senha" class="form-control" required>
</div>
</div>

<div class="form-group center">
<label class="col-md-4 control-label" for="idLogin"></label>
<div class="col-md-8">
<button type="submit" id="idLogin" name="idLogin" class="btn btn-primary">Login</button>
</div>
</div>

</fieldset>
</form>


<?php
if(isset($_POST['idLogin'])){
$idUsuario = $_POST['idUsuario'];
$idSenha = $_POST['idSenha'];

if(empty($idUsuario) || empty($idSenha)){
echo "Usuário ou senha inválidos.";
}

else{
$query = "SELECT idNome, idSenha FROM usuarios WHERE idNome = '$idUsuario' OR idMail = '$idUsuario' AND idSenha = '$idSenha'";
$resultado = mysql_query($query);
$busca = mysql_num_rows($resultado);
$linha = mysql_fetch_assoc($resultado);

if ($busca> 0){
$_SESSION['idNome'] = $linha['idNome'];
header('Location: index.php');
exit;
}

else{
echo "Usuário ou senha inválidos.";
echo '<br/>';
echo '<a href="login.php">Você não é cadastrado? Clique aqui</a>';
}
}
}
?>



  


2. Solução

Rui Guilherme da Cunha
RuiGuilherme

(usa Manjaro Linux)

Enviado em 20/07/2017 - 23:49h



<?php
if(isset($_POST['idLogin'])){
$idUsuario = $_POST['idUsuario'];
$idSenha = $_POST['idSenha'];

if(empty($idUsuario) || empty($idSenha)){
echo "Usuário ou senha inválidos.";
}

else{
$query = "SELECT idNome FROM usuarios WHERE idNome = '$idUsuario' OR idMail = '$idUsuario'";
$resultado = mysql_query($query);
$busca = mysql_num_rows($resultado);
$linha = mysql_fetch_assoc($resultado);

$query2 = "SELECT idSenha FROM usuarios WHERE idSenha = '$idSenha'";
$resultado2 = mysql_query($query2);
$busca2 = mysql_num_rows($resultado2);
$linha2 = mysql_fetch_assoc($resultado2);

if(($busca> 0) && ($busca2> 0)){
$_SESSION['idNome'] = $linha['idNome'];
$_SESSION['idSenha'] = $linha2['idSenha'];
echo '<a href="index.php">     Redirecionamento falhou. Por favor, clique aqui!</a>';
exit;
}

else{
echo "Usuário ou senha inválidos.";
echo '<br/>';
echo '<a href="login.php">Você não é cadastrado? Clique aqui</a>';
}
}
}
?>


Você pode alterar o echo no if para header('Location: index.php'); se quiser. :) Vlw, a todos envolvidos, vou compartilhar a solução aqui pra caso alguém tenha o mesmo problema.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts