Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida com relação a Login


churrumino

Pergunta

Olá, pessoal.

A situação é a seguinte, sou leigo em PHP, herdei aqui na empresa o site da empresa e um sisteminha que é como uma extranet da moça que trabalhava aqui no setor e saiu, isso já faz cerca de um ano.

Com o site da empresa eu consigo me virar legal, a Extranet sempre funcionou sem problemas até hoje, mas acabo de me deparar com um problema que não sei como resolver com relação à Extranet...

Ao entrar no endereço, é apresentado ao usuário uma tela de login, pedindo usuário e senha e um botão Entrar.

Ao preencher os dados e clicar em entrar, eu, ou qualquer outro usuário que testei, sou jogado de volta para a mesma tela de login. Se coloco os dados errados (como o meu usuário e a senha errada) ele apresenta a mensagem de "Usuário ou senha inválidos!" como deveria.

Eis o código referente a essa página..

<form method="post" action="../acoes/autentica.php">
        <p>Nome de Usuário:<br>
                   <input type="text" name="login" id="login">
                <br>
                <span class="mensagens">
                    <?php
                        if (isset($_REQUEST['slog'])){
                            echo("Digite seu nome de usuário <br>");
                            echo("&lt;script type=\"text/javascript\">document.getElementById(\"login\").focus();</script><br>"); 
                        }
                    ?>
                </span>
                <br>
                Senha:<br> 
                <input type="password" name="senha" id="senha">
                <br>
                <span class="mensagens">
                    <?php
                        if (isset($_REQUEST['ssen'])){
                            echo("Digite sua senha <br>");
                            echo("&lt;script type=\"text/javascript\">document.getElementById(\"login\").value = \"".$_REQUEST['ssen']."\"\n");
                            echo("document.getElementById(\"senha\").focus();</script><br>"); 
                        }
                    ?>
                </span>
                <br>
                <input type="submit" value="Entrar">
                <span class="mensagens">
                    <?php
                        if (isset($_REQUEST['fusu'])){
                            echo("<br>Usuário ou senha inválidos!");
                            echo("&lt;script type=\"text/javascript\">document.getElementById(\"login\").value = \"".$_REQUEST['fusu']."\"\n");
                            echo("document.getElementById(\"senha\").focus();</script>"); 
                        }
                    ?>
                </span>
E eis o que consta no arquivo /acoes/autentica.php..
<?php

    require("../uteis/conexao.php");
    
    if((isset($_POST['login']) == false) || (trim($_POST['login']) == "")){
        header("Location: ../paginas/login.php?slog=x");
        exit;
    }
    if((isset($_POST['senha']) == false) || (trim($_POST['senha']) == "")){
        header("Location: ../paginas/login.php?ssen=".$_POST['login']);
        exit;
    }
    
    $login = strtolower($_POST['login']);
    $senha = sha1($_POST['senha']);
    
    $sql = pg_query("select * from usuarios where login = '$login' and senha = '$senha'");
    
    if(!pg_num_rows($sql)){
        header("Location: ../paginas/login.php?fusu=".$_POST['login']);
        exit;
    }
    
    $dados = pg_fetch_assoc($sql);
    
    session_start();
    $_SESSION['login'] = $dados['login'];
    $_SESSION['nome'] = $dados['nome'];
    $_SESSION['tipo'] = $dados['tipo'];
    $_SESSION['id'] = $dados['id'];
    $_SESSION['email'] = $dados['email'];
    $_SESSION['logado'] = "parangaricutirimirruaro";
    
    if($_SESSION['tipo'] == 'admin'){
        header("Location: ../paginas/index_admin.php");
    }else{
        header("Location: ../paginas/index_geral.php");
    }
    exit;

?>

O banco de dados é PostgreSQL, aparentemente está funcionando corretamente pois há outras aplicações e inclusive o site que funcionam com esse mesmo banco.

Tudo isso é hospedado internamente aqui na empresa.

Alguém teria alguma ideia para me dar uma luz? Caso necessite de mais alguma informação pra auxiliar, é só pedir.

Obrigado!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

então parceiro, tambem não sou muito bom em php, mas pelo que estou vendo eu acho, veja bem, eu acho, que existe uma falha na sua session,

eu sei que ela tem que esta no topo da página, acima de qualquer coisa, e depois disso existir somente um nome de session não vários nomes,

a forma de recuperar eles tambem deve manter o mesmo padrão.

segue um site para dar uma olhada

http://www.codigofonte.net/dicas/php/124_v...sessions-no-php

qualquer coisa da um grito felipe.macedo12@gmail.com

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, obrigado por responder, Felipe!

A sessão é iniciada na página autentica.php e depois segue nas páginas index_admin.php e index_geral.php com o seguinte código..

<?php
    require("../uteis/conexao.php");
    require("../uteis/funcoes.php");
    session_start();
    if($_SESSION['logado'] != "parangaricutirimirruaro")
        header("Location: login.php");
?>

Fiz vários testes de ontem pra hoje com a ajuda de outros fóruns também e amigos, me parece que não está segurando os dados da sessão.

Mas o que fazer pra consertar isso, eu não sei...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...