Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

studdiox

Session Sem erro mas não Loga !!!

Recommended Posts

Galera estou com um problema com session start ...

 

houve atualização na versão do php no servidor de hospedagem caindo fora alguns argumentos estou tentando com uma nova versão

 

passada por indicação de um colega aqui do forum washalbano

que já me quebrou uma baita galho eliminando o primeiro erro do argumento extinguido da versão do php ( session_is_registered  )

mas agora ele não quer logar se alguém puder dar uma mãozinha vou postar os códigos abaixo do formulário de acesso

log-admin.php e da verificação loga.php

 

e o erro que retorna a mensagem "Acesso Negado !! Usuário Não Logado"

vinda do final do código   loga.php  Não aparece nenhum erro apenas  isso e retorna para o formulário de login ( log-admin.php )

 

  //agora a parte que verifica se o login já foi feito

  // se não há user em $_SESSION
  if (!isset($_SESSION['nome'])) {
    // Usuário não logado! Redireciona para a página de login
    echo '<script>'
      . 'alert("Acesso Negado !! Usuario Não Logado");'
      . 'document.location="log-admin.php";'
      . '</script>';

 

 

 

log-admin.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>: : : PAINEL DE ADMINISTRACAO DO WEBSITE : : :</title>
<style type="text/css">
<!--
body, td, th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; }
body { background-color: #000000; }
a:link { color: #000000; text-decoration: none; }
a:visited { color: #000000; text-decoration: none; }
a:hover { color: #000000; text-decoration: none; }
a:active { color: #000000; text-decoration: none; }
-->
</style>
</head>
<body>
    <?php
        session_name("user1,user2");
        session_start();
    ?> 
<form name="form1" method="post" action="loga.php?acao=logar">
  <div align="center">
    <p>&nbsp;</p>
    <p>Painel de Acesso <br>
    </p>
  </div>
  <table width="338" border="0" align="center" cellpadding="4" cellspacing="2">
    <tr>
      <td width="59" bordercolor="#333333"  bgcolor="#333333">NOME
        : </td>
      <td width="239" bordercolor="#333333" bgcolor="#333333">
        <label>
        <input name="nome" type="text" id="nome" size="35">
        </label>
      </td>
    </tr>
    <tr>
      <td bordercolor="#333333" bgcolor="#333333">SENHA
        : </td>
      <td bordercolor="#333333" bgcolor="#333333">
        <label>
        <input name="pwd" type="password" id="pwd" size="35">
        </label>
      </td>
    </tr>
    <tr>
      <td colspan="2" bordercolor="#333333" bgcolor="#333333">
        <div align="center">
          <label>
          <input type="submit" name="Submit" value="ENTRAR">
          </label>
          <div align="right"></div>
        </div>
        <div align="right"></div>
      </td>
    </tr>
  </table>
  <div align="center"><br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <label> </label>
    <a href="deslogar.php">Deslogar</a><br>
  </div>
</form>
</body>
</html>

 

 

loga.php

<?php
// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Report all PHP errors
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

ini_set("display_errors", 1);
?>
<?php

  // variáveis para conexão
  $host = 'localhost';     // define o host do banco de dados
  $user = 'root';          // user do banco de dados
  $password = '';          // senha do banco de dados
  $database = 'database';  // nome do banco de dados

  // estabelecer conexão com o mysql
  $sqli = new mysqli($host, $user, $password);


  // verificar se houve erro na conexão
  if ($sqli->connect_error) {
    // se houve erro, mostra erro na tela
    echo "<p>Erro ao Conectar: $sqli->connect_error</p>";
  }
  // alterar o tipo de codificação da conexão com o banco de dados,  para utf8
  if (!$sqli->set_charset('utf8')) {
    echo "<p class='error'>O charset não é utf8: $sqli->error</p>";
  }
  // selecionar/abrir o banco de dados para trabalhar
  if (!$sqli->select_db($database)) {
    // se o banco de dados não for encontrado
    echo "<p class='error'>Banco de dados não encontrado, chefe!</p>";
  }


  // arquivo de verificar o login

session_name('user1,user2');
session_start();

  if (isset($_POST['acao']) && $_POST['acao'] == 'logar') {

    // trata o nome
    $nome = $sqli->real_escape_string($_POST['nome']);

    // define a query de busca
    $query = "SELECT * FROM sis_login WHERE login='$nome' LIMIT 1";

    // executa a query e guarda o resultado em $result
    $result = $sqli->query($query);

    // se há algum resultado
    if ($result->num_rows) {

      // guarda o resultado em $dados
      $dados = $result->fetch_assoc();

      // verificar se a senha postada é igual a senha retornada
      if ($_POST['pwd'] == $dados['senha']) {

        // registra o user na sessão
        $_SESSION['nome'] = $dados;

        // redireciona para admin.php
        header('Location: admin.php');
        exit;
      } // Se a senha não confere
      else {
        echo '<script>'
          . 'alert("Senha Inválida !!");'
          . 'document.location="log-admin.php";'
          . '</script>';
      }
    } // Se não há resultados em $result, o Login é inválido
    else {
      echo '<script>'
        . 'alert("Login Inválido !!");'
        . 'document.location="log-admin.php";'
        . '</script>';
    }
  }


  //agora a parte que verifica se o login já foi feito

  // se não há user em $_SESSION
  if (!isset($_SESSION['nome'])) {
    // Usuário não logado! Redireciona para a página de login
    echo '<script>'
      . 'alert("Acesso Negado !! Usuario Não Logado");'
      . 'document.location="log-admin.php";'
      . '</script>';
  }
?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você iniciar as sessões (session_start) em todas as páginas,  se possível antes de qualquer outra coisa, você está fazendo isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Negrito
      Olá,
       
      Estou quebrando a cabeça com o recurso Session_OnStart , pois eu gostaria que algumas paginas/arquivos .asp tivessem exceções.
       
      Criei o Global.ASA com o seguinte contexto:
       
      <SCRIPT RUNAT=Server Language="VBScript">
      Sub Session_OnStart
        startPage = "/default.asp"
        currentPage = Request.ServerVariables("SCRIPT_NAME")
        If strcomp(currentPage,startPage,1) then
          Response.Redirect("/default.asp")
        End If
      End Sub
      </SCRIPT>
       
      Ele funciona perfeitamente, quando tento acessar qualquer pagina ou subdiretorio diretamente pela URL, ele me joga para a pagina inicial.
       
      Porem, eu gostaria de ter exceções em alguns diretorios e paginas .ASP , onde eu gostaria de liberar o acesso direto ao digitar a URL.
       
      Alguem sabe me informar se é possivel ? 
       
      Obrigado.
       
       
    • Por k9studio
      Olá meus Amigos,
       
      Estou tendo dificuldades em eliminar dados repetidos de uma session
      é um sisteminha de pesquisa de domínios com array
      quero eliminar quando já tiver um nome na session, não deixar gravar outro
      aguem pode ajudar
      veja como está  
      Array ( [0] => Array ( [type] => register [domain] => testeteste.com.br [regperiod] => 1 ) [1] => Array ( [type] => register [domain] => testeteste.com [regperiod] => 1 ) [2] => Array ( [type] => register [domain] => testeteste.net.br [regperiod] => 1 ) [3] => Array ( [type] => register [domain] => testeteste.com.br [regperiod] => 1 ) [4] => Array ( [type] => register [domain] => testeteste.com [regperiod] => 1 ) [5] => Array ( [type] => register [domain] => testeteste.net.br [regperiod] => 1 ) ) Desde já muito obrigado a todos
    • Por Alberto Nascimento
      Estou tendo problemas de acesso ao Session, onde quando realizo login via computador, consigo "pegar" os dados que foram armazenados na sesion, mas quando utilizo o sistema de login no telefone ( android, por exemplo ) a session não esta conseguindo carregar os dados do usuário logado e exibir na página seguinte.
       
      Outra coisa que observei é que não consigo trabalhar com session em pastas diferentes, isso é normal? Veja só:
       
       
      Utilizando esta estrutura, não consigo ter acesso ao session no sistema ANDROID
       
      Agora se ao invés de ser como esta acima, faço uma pasta com todos os arquivos juntos, já consigo "pegar" os dados da session. Isso é normal?
    • Por tony_lu
      Ola pessoal, tenho uma hospedagem de php na hostgator e estou tentando rodar uma rotina com session e esta dando erro, na pagina só tem este código:
       
      <?php  session_start();  ?> E esta dando este erro:
      Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/sitewww/public_html/carrinho.php:1) in /home2/sitewww/public_html/carrinho.php on line 2
       
      Alguem pode me ajudar?
    • Por Evandrorussi
      Olá pessoal,
       
      Trabalho com PHP a uns 6 anos e me deparei com um problema de session que nunca ouvi falar, pelo menos não encontrei nada pela internet desse tipo. Tenho um servidor dedicado no Google Cloud e o site tem um sistema de login via session. O problema é que a session funciona aleatoriamente, tem hora que não funciona, o cliente troca de tela e o servidor perde a session e pede pra logar novamente, isso não acontece com todos usuários, comigo por exemplo não acontece.
      O cara que trabalha comigo não ocorria esse problema mas agora começou a acontecer e ele reparou que com guia anônima o problema não ocorre.
       
      Caso alguém pergunte, session_start() está iniciando em todas as páginas.
       
      Abraço
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.