1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problema no login.

Discussão em 'Web Development' iniciada por darkult, 6 de Abril de 2009. (Respostas: 8; Visualizações: 617)

  1. darkult

    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???
     
  2. fil79

    fil79 Power Member

    e a password desse novo user corresponde à que estás a digitar????
     
  3. darkult

    darkult Power Member

    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: 6 de Abril de 2009
  4. skullrazor

    skullrazor [email protected] Member

    Posta o código da pagina de login.

    Cumps
     
  5. darkult

    darkult Power Member

    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>
     
  6. darkult

    darkult Power Member

    Para restrigir o acesso as página uso isto:
     
  7. darkult

    darkult Power Member

    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.
     
  8. darkult

    darkult Power Member

    Podem fechar
     
  9. skullrazor

    skullrazor [email protected] Member

    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
     

Partilhar esta Página