Ir para conteúdo

Arquivado

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

DinhoPHP

Simplesmente a SESSION não destrói

Recommended Posts

Olá! Estou à uns cinco dias vendo que a session_destroy não funciona. No navegador, a mesma permanece ativa após deslogar.

 

logout.php

<?php
session_start();
session_destroy();
print_r(session_status());
echo "<h1>Você foi deslogado com sucesso!</h1>";
header("refresh: 5; url=login.php");
?>

login.php

<?php
require_once '_classes/Acoes.php';
require_once '_classes/globais.php';
print_r(session_status());
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><?php echo "Sistema de Cadastro&Login";?></title>
    <link href='http://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css' />
</head>

<body>
<?php echo $msg;
print_r($_COOKIE);
?>
        <div class="acomodar">
        	<form action="_classes/logar.php" method="post">
            <label for="email">E-mail: </label><input id="email" type="text" class="txt bradius" name="email" />
            <label for="senha">Senha: </label><input  id="senha" type="password" class="txt bradius" name="senha"  />
            <input type="submit" class="sb bradius" value="Logar" />
            </form>
        <!--acomodar-->
        </div>
       <!--login-->
    </div>

</body>
</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que 

print_r(session_status());

Esta lhe retornando nas duas paginas?
 

0 significa que as sessoes estão desabilitas
1 significa que as sessões estão habilitadas mas não existe nenhuma sessão ativa
2 significa que as sessões estão habilitadas e que existe alguma sessão ativa 
 

http://php.net/manual/pt_BR/ref.session.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, mas o correto não seria zerar? E quando peguei o array dessa session na página de login, antes do login o array fica vazio, mas após o destroy não, e fica a mesma no chrome ao pressionar F12. Eu olho o manual do PHP amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para mim não ficou claro, o que você acha que tem que "zerar", o resultado de 

print_r(session_status());

ou de 

print_r($_SESSION); 

?


O do primeiro caso, como já mencionei, não vai lhe retornar 0 por a SESSION estar vazia

Você também não vai limpar o PHPSESSID do chrome com session_destroy(); para isso você precisa limpar o navegador
https://support.google.com/accounts/answer/32050?hl=pt-BR
 

O que você quis dizer com "Eu olho o manual do PHP"?
Só deixei uma referencia! 

Ajudaria mais se você postasse os outputs dos seus testes
Boa sorte!
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

EdCesar, desculpe se pareci chato ou inconveniente, não foi a intenção. O que quis dizer é que eu pensei que pelo fato de permanecer esse PHPSESSID a sessão não  era encerrada, e mesmo quando faço outro login, permanece uma PHPSESSID igualzinha a anterior. É que já fiz tanto teste que estou perdido. Mas verei aqui e postarei as saídas. Abraço!

 

PS: Zerar o print_r(session_status());

Compartilhar este post


Link para o post
Compartilhar em outros sites
22 horas atrás, DinhoPHP disse:

e mesmo quando faço outro login, permanece uma PHPSESSID igualzinha a anterior. É que já fiz tanto teste que estou perdido.

No momento do login regenere a ID de Sessão

http://php.net/manual/pt_BR/function.session-regenerate-id.php
 

 

 

23 horas atrás, EdCesar disse:

Você também não vai limpar o PHPSESSID do chrome com session_destroy(); para isso você precisa limpar o navegador
https://support.google.com/accounts/answer/32050?hl=pt-BR
 


Se quer limpar os cookies, acredito que isso tem que ser automático no logout

Um loop seria a melhor opção checando os Cookies existentes

Ex.:

foreach($_COOKIE AS $key => $ck){
    setcookie($key, $ck, time() - 60*60*24*365, '/', 'example.com', 0, true);
}


 

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.