Problema no login.

darkult

Power Member
Boas, estou com um problema.

No meu sistema de login, se eu entrar com o user:teste e password:teste, aceita o acesso.
Mas se entrar com outro user, que esta na BD, ele nao entra. Volta sempre à pagina login.php.

O que pudera ser???
 
sim, coloco tudo bem.
Pois se coloca-se mal a password ou user, aparecia uma mensagem a dizer...

E se eu for a BD e alterar o login do user:teste para outra coisa qualquer, depois ja nao consigo entrar.

Parece que esta definida alguma constante teste e ele so deixa entrar se o user e password forem ambos teste
 
Última edição:
Código:
<?php
//Mude aqui para onde o usuário vai ser redirecionado caso o Login for bem sucedido
$pagina_restrita = "index.php";

if(isset($_GET['msg']) && $_GET['msg'] != "") {
    require("SQL.php");
    $mensagem = $_GET['msg'];
} else {
    $mensagem = base64_encode("Acesso para &Aacute;rea Restrita");
}

if($_SERVER['REQUEST_METHOD'] == "POST"){

        if(isset($_POST['login']) && isset($_POST['senha'])){
        require("SQL.php");                
        $login = $_POST['login'];
          $senha = md5($_POST['senha']);
                $query = mysql_query("SELECT * FROM usuarios_vip WHERE login='$login' AND senha='$senha'") or die(mysql_error());
                $rTestar = mysql_num_rows($query);
        $row = mysql_fetch_assoc($query);
               
                if($rTestar > '0'){
                      //session_start();
                        session_register('login');
                        session_register('senha');
                        $_SESSION['login'] = $row['login'];
                        $_SESSION['senha'] = $row['senha'];
                        echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $pagina_restrita . "\">";
            exit;
                } else {
               
                        $mensagem = base64_encode("<font color=\"red\"><b>Login ou senha Invalida</b></font>");
               
                }
               
        }

}
?>


<form name="form1" method="post" action="">
<div align="center">
<fieldset id="field">
<legend><?php echo "<font face=\"Verdana\" size=\"2\"><b>" . base64_decode($mensagem) . "</b></font>"; ?></legend>
  <table width="245" border="0" align="center" cellpadding="0" cellspacing="0" class="table">
    <tr>
      <td width="100" scope="col"><span class="text_form">Login:</span></td>
      <td width="145" scope="col"><input name="login" type="text" id="login"></td>
    </tr>
    <tr>
      <td width="100" scope="row"><span class="text_form">Senha:</span></td>
      <td width="145"><input name="senha" type="password" id="senha"></td>
    </tr>
    <tr>
      <td width="100" scope="row"></td>
      <td width="145"><input type="submit" name="Submit" value="Logar">
      <input type="reset" name="Submit2" value="Limpar"></td>
    </tr>
  </table>
  </fieldset>
  </div>
</form>
 
Para restrigir o acesso as página uso isto:
<?php
//Coloque aqui uma mensagem caso a pessoa tente entrar em uma página protegida sem autenticação
$mensagem = base64_encode("Faça o Login primeiro");


session_start();
if(isset($_SESSION['login']) && isset($_SESSION['senha'])) {
$login = $_SESSION['login'];
$senha = $_SESSION['senha'];
require("SQL.php");
$query = mysql_query("SELECT * FROM usuarios WHERE login='$login' AND senha='$senha'") or die(mysql_error());
$rTestar = mysql_num_rows($query);
}

if(isset($rTestar) && $rTestar > '0'){
$row = mysql_fetch_assoc($query);
} else {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=entrar.php\">";
exit;
}
?>
 
Pessoal obrigado pela ajuda mas ja encontrei o erro.
Na pagina restringir nesta linha
Código:
$query = mysql_query("SELECT * FROM [S]usuarios[/S] WHERE login='$login' AND senha='$senha'") or die(mysql_error());
a tabela esta mal, deve ser usuarios_vip e não usuarios.
 
Assim numa leitura rápida não me pareceu ver grandes erros. Na página de login, abre a sessão logo no inicio da página, antes de qualquer código; no if($rTestar > '0') mete só if($rTestar); no SELECT à base de dados experimenta fazer sem *, ficando apenas SELECT FROM (...). Na parte de restrição o acesso à outra página digo-te para fazeres a mesma coisa que na página de login, e algo que reparei, que não sei se é erro ou não, mas no SELECT da página de login vais "chamar" a tabela usuarios_vip e na página de restrição o acesso vais "chamar" a tabela usuarios. Não te terás enganado a escrever? Vai experimentando e tentando várias coisas.

Cumps

EDIT: Bem me pareceu que tinhas escrito mal :P
 
Back
Topo