Jump to content
Evandrorussi

Problema com Session

Recommended Posts

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

 

 

Share this post


Link to post
Share on other sites

Qual o navegador do usuário?

Talvez o navegador ou algum programa de limpeza delete os cookies do navegador em um determinado período de tempo.

Por mais que o login seja em session e não cookie, ao deletar o cookie a sessão vai embora junto.

3 horas atrás, Evandrorussi disse:

Caso alguém pergunte, session_start() está iniciando em todas as páginas.

Pode ser alguma extensão, já que provavelmente a guia anônima dele não carrega as extensões.

~

Se possível, peça para o usuário restaurar o navegador ou trocar.

~

Pela minha experiência eu aponto o problema na má utilização do usuário e não no dedicado / login.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By darkside88
      Esse é meu código porém não está exibindo dentro dos inputs as informações recuperadas da página EDITAR nos campos! <?php //ini_set('display_errors', 0); include('conexao/connection.php'); session_start(); $cli_codigo = intval($_GET['usuario']); if(isset($_POST['confirma'])){     //Registrar Dados     if(!isset($_SESSION))         session_start();       foreach($_POST as $chave=>$valor)         $_SESSION[$chave] = $con->real_escape_string($valor);       //Validar     if (strlen($_SESSION['nome']) == 0)     $erro[] = "Preencha o campo Nome";            if (strlen($_SESSION['wpp']) == 0)     $erro[] = "Preencha o campo WhatsApp";       if (strtotime($_SESSION['dt1']) > strtotime($_SESSION['dt2']) || strtotime($_SESSION['dt1']) == strtotime($_SESSION['dt2']))     $erro[] = "A Data de Criação no IPTV deve ser menor que a Data de Vencimento no IPTV ou não podem ser iguais";           //Inserir       if(count($erro) == 0){         $sql_code = "UPDATE cadastrocliente set             nomecli = '$_SESSION[nome]',             email = '$_SESSION',             wpp = '$_SESSION[wpp]',             srv = '$_SESSION[srv]',              srv = '$_SESSION[dt1]',                         dataVI = '$_SESSION[dt2]',             app = '$_SESSION[app]'             WHERE nomecli = '$cli_codigo'";         $confirma = $con->query($sql_code) or die($con->error);         if($confirma){             unset(                 $_SESSION[nome],                 $_SESSION,                 $_SESSION[wpp],                 $_SESSION[srv],                 $_SESSION[dt1],                 $_SESSION[dt2],                 $_SESSION[app]                          );                         header("Location: index.php?p=listarcliente");         }else{             $erro[] = $confirma;         }     }else{         $sql_code = "SELECT * FROM cadastrocliente WHERE id_cliente= '$cli_codigo'";         $sql_query = $con->query($sql_code) or die($con->error);         $linha = $sql_query->fetch_assoc();           $_SESSION[nome] = $linha['nomeCli'];         $_SESSION = $linha['email'];         $_SESSION[wpp] = $linha['wpp'];         $_SESSION[srv] = $linha['srv'];         $_SESSION[srv] = $linha['dt1'];         $_SESSION[dt2] = $linha['dt2'];         $_SESSION[app]  = $linha['app'];     } }   ?> <?php   if (count($erro) > 0) {     echo "<div class='alert alert-danger'>";     foreach ($erro as $valor)         echo "$valor <br>";          echo "</div>";}  ?> <form class="container-fluid" action="index.php?p=editar&usuario=<?php echo $cli_codigo?>" method="POST">     <label for="nome">Nome do Cliente</label>     <input type="text" name="nome" value="<?php echo $_SESSION[nome]?>" class="form-control" placeholder="Nome Completo do Cliente">     <label for="email">Email</label>     <input type="email" name="email" value="<?php echo $_SESSION?>" class="form-control" placeholder="nome@exemplo.com">     <label for="mensagem">WhatsApp</label>     <input type="text" name="wpp" value="<?php echo $_SESSION[wpp]?>" class="form-control" placeholder="Digite o seu Whatsapp (DD) 9 XXXX-XXXX"         id="celular" name="mensagem">     <script type="text/javascript">     $("#telefone,#celular").mask("(00) 0 0000-0000");     </script>     <label for="srv">Servidor do Cliente</label>     <input type="text" name="srv" value="<?php echo $_SESSION[wpp]?>" class="form-control" placeholder="Servidor do Cliente">     <label for="dt1">Data de Criação no IPTV</label>     <input type="date" value="<?php echo $_SESSION[dt1]?>" data- provide="datepicker" name="dt1" class="form-control">     <label for="dt2">Data de Vencimento no IPTV</label>     <input type="date" name="dt2" value="<?php echo $_SESSION[dt2]?>" class="form-control">     <label for="app">App doCliente</label>     <input type="text" name="app" value="<?php echo $_SESSION[app]?>" class="form-control" placeholder="App do Cliente">     <input type="submit" name="confirma" class="form-control btn btn-dark mt-4 mb-4 " value="Cadastrar">   </form>
    • By fabina
      Ola tenho um questionario feito  em php  guardo o valor das respostas no banco   e depois    tem um resultado por cada area  que ele respondeu ate ai responde  super bem mais quando  duas pessoas começam a fazer  ele  perde o valor da session e nao  exibe o valor para o meu usuario ,ou as vezes troca o nome do usuario x para y 
    • By Redschenko
      Boa tarde.

      Tenho um sistema onde o usuário faz login e grava a sessão
      $_SESSION['LOGADO'] = true; Nesta página com acesso restrito verifico se o usuário está logado. Caso não, redireciono para página de login.
       
      if(!isset ($_SESSION['LOGADO']) == true) { header("Location:../../index.php?t=d&m=4"); exit(); } Isto estava funcionando corretamente, porém após passar a utilizar https, na página com acesso restrito a verificação ($_SESSION['LOGADO'] == true) está sempre redirecionando para a página de login.
      Alguém sabe se há alguma particularidade para casos onde seja HTTPS?
       
      Agradeço a atenção
      Rodrigo de Oliveira
    • By brunoogm
      Pessoal tenho o seguinte codigo:
       
      <!DOCTYPE html>
      <html lang="pt-br">
          <head>
              <meta charset="utf-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1">
              <title>KADAM - Menu Digital</title>
              <link rel="icon" href="../imagens/img.png" type="image.png" />
              <link href="../css/bootstrap.min.css" rel="stylesheet">
              <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
              <link rel='stylesheet' href='https://use.fontawesome.com/releases/v5.7.0/css/all.css' integrity='sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ' crossorigin='anonymous'>
              <script src="../js/bootstrap.min.js"></script>
              
              <script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
              <script src="sweetalert2.all.min.js"></script>
              <script src="https://cdn.jsdelivr.net/npm/promise-polyfill"></script>
          </head>
          <body>
              <div class="container theme-showcase" role="main">

      <?php
      session_start();
      include_once("php/conexao.php");

      $idPessoa = $_SESSION['id_pessoa'];
      $id_cliente = $_SESSION['id_user']; 
      $cont = $_SESSION['cont'];
       
      echo "ID cliente: ".$id_cliente."<br>";
      echo "Cont: ".$cont."<br>";
       
      $endereco = filter_input(INPUT_POST, 'endereco');
      $total = filter_input(INPUT_POST, 'Total');
      $metodopag = filter_input(INPUT_POST, 'pagamento');
      $troco = filter_input(INPUT_POST, 'troco');
      $cpfnota = filter_input(INPUT_POST, 'cpfnota');
      $query= "Select * from enderecocliente WHERE CodigoEndereco = $endereco";
      $resulta = mysqli_query($conectar, $query);
      $resultado = mysqli_fetch_array($resulta);

      //echo "Cod Endereco: ".$endereco."<br>";
      //echo "Nome Cidade: ".$resultado['NomeCidade']."<br>";
      //echo "Endereco: ".$resultado['Endereco']."<br>";
      //echo "Cep: ".$resultado['CEP']."<br>";
      //echo "numero: ".$resultado['Numero']."<br>";
      //echo "Cod Endereco: ".$resultado['Bairro']."<br>";
      //echo "Cod Endereco: ".$resultado['Estado']."<br>";
      //echo "Cod Endereco: ".$metodopag."<br>";
      //echo "Total: ".$total."<br>";

      $query ="UPDATE comanda SET ValorTotal= '$total', CodigoEndereco= $resultado[CodigoEndereco], CodigoMetodoPag = $metodopag, CodigoSituacao = '3' WHERE CodigoComanda = $cont";
      $resultado = @mysqli_query($conectar, $query);
      $query2 ="INSERT INTO pagamento  (CodigoComanda, CpfNota, CodigoMetodoPag, Troco, ValorTotal) VALUES ('$cont', '$cpfnota', '$metodopag', '$troco', '$total')";
      $resultado2 = @mysqli_query($conectar, $query2);
      $_SESSION['cont'] = 0;
      if (mysqli_affected_rows($conectar)) {
              
      ?>
      <script>
          swal({
              
              closeOnEsc: false,
              closeOnClickOutside: false,
              title: "Sucesso!",
              text: "Parabéns! Pedido enviado com sucesso!",
              icon: "success",
              button: "Ok",
                  }).then(function(){   
                      window.location.href = "../carrinho.php"; 
                      });
      </script>
                  
                  <?php } else { ?>
      <script>
          swal({
              
              closeOnEsc: false,
              closeOnClickOutside: false,
              title: "Erro!",
              text: "Ops! Seu pedido não foi enviado!",
              icon: "error",
              button: "Ok",
                  }).then(function(){   
                      window.location.href = "../carrinho.php"; 
                      });
      </script>
      <?php } ?>
       
       
      Testando em localhost esse código funciona normalmente onde os valores das sessions estão sempre disponíveis,
      porem agora que coloquei o site no ar essas sessões não estão mais apresentando valores, e é somente nessa pagina que isso acontece
      nas outras paginas elas apresentam seus valores corretamente...
       
      Alguém tem alguma sugestão, do que poderia ser ?
    • By MateusDuarte
      Preciso de um Help.
      Eu tenho um sistema e nele os usuários precisam fazer login para acessar, os usuarios se logan, a SESSION é armazenada bonitinha, passa pela verificação de que está logado e até retorna o valor da SESSION. Porem se eu fechar o navegador e abrir de novo, ele pede para se logar de novo.
      Como faço para armazenar essa SESSION apenas uma vez? Tipo o facebook, você se loga 1 vez, e quando fecha e abre de novo ele sabe que você tem permissão naquele PC.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.