Ir para conteúdo

POWERED BY:

Arquivado

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

ThalysonCordeiro

[Resolvido] sessao não destroi

Recommended Posts

troca

if (!isset($_REQUEST) 

por

if (isset($_REQUEST) 

 

remove só o ! (not)

 

fiz e testei, a unica diferença é que nao fez a pergunta de confirmação se eu realmente desejava sair do sistema.

 

retirei o ! e saiu direto, ai quando vou logar com outro usuario aparece a sessão do ultimo que loguei, exemplo.

Loguei com Joao, ai cliquei em sair, saiu e foi para pagina de login, quando vou tentar entrar com Maria, entra, porem, mostra o nome do Joao logado, parece que a sessão n ta destruindo ou que a sessão ta ficando no cache. entenderam ? ja n sei o que faço, na moral .. alguem ja viu um trem desse ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, vamos retornar com o ! e focar em outro lado. kkk

 

Se o seu codigo está assim:

 

<?php
session_start();
if(!isset($_REQUEST['logmeout'])){
   echo "Você realmente deseja sair da área restrita?<br />";
   echo "<a href=\"sair.php?logmeout\">Sim</a> | <a href=\"javascript:history.go(-1)\">Não</a>";
}
else{
   session_unset();
   session_destroy();
   if(!session_is_registered('documento')){
       echo "<script>location.href='login.php'</script>";
   }
}
?>

 

experimente alterar para

 

<?php

if(!isset($_REQUEST['logmeout'])){
   echo "Você realmente deseja sair da área restrita?<br />";
   echo "<a href=\"sair.php?logmeout\">Sim</a> | <a href=\"javascript:history.go(-1)\">Não</a>";
}
else{

session_start();


   session_unset();
   session_destroy();
   if(!session_is_registered('documento')){
       echo "<script>location.href='login.php'</script>";
   }
}
?>

Entendeu? Passando a session start para dentro da condicional. Poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim mantém isso:

 

<?php
session_start();
if(!isset($_REQUEST['logmeout'])){
   echo "Você realmente deseja sair da área restrita?<br />";
   echo "<a href=\"sair.php?logmeout\">Sim</a> | <a href=\"javascript:history.go(-1)\">Não</a>";
}
else{
   session_unset();
   session_destroy();
   if(!session_is_registered('documento')){
       echo "<script>location.href='login.php'</script>";
   }
}
?>

 

e acresce isso:

<?php
if (isset($_GET['logmeout'])) {
session_start();
session_destroy();
echo "<script>location.href='login.php'</script>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também procure passar algum valor pra esta variavel que voce esta mandando por GET, no link defina assim:

echo "<a href=\"sair.php?logmeout=true\">Sim</a> | <a href=\"javascript:history.go(-1)\">Não</a>";

 

Se não o interpretador vai considerar sempre a variavel como nula e nunca vai encerrar a sessão.

 

se não o interpretador vai considerar a variavel como nula e o isset vai sempre retornar falso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também procure passar algum valor pra esta variavel que voce esta mandando por GET, no link defina assim:

echo "<a href=\"sair.php?logmeout=true\">Sim</a> | <a href=\"javascript:history.go(-1)\">Não</a>";

 

Se não o interpretador vai considerar sempre a variavel como nula e nunca vai encerrar a sessão.

 

e pra completar fica assim

<?php
if (isset($_GET['logmeout']) and $_GET['logmeout'] == "true") {
session_start();
session_destroy();
echo "<script>location.href='login.php'</script>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

gente, ficou na mesma, coloqui o codigo

 

<?php
if(!isset($_REQUEST['logmeout'])){
   echo "Você realmente deseja sair da área restrita?<br />";
   echo "<a href=\"sair.php?logmeout=true\">Sim</a> | <a href=\"javascript:history.go(-1)\">Não</a>";
}
else{
   session_start();
   session_unset();
   session_destroy();
   if(!session_is_registered('documento')){
       echo "<script>location.href='login.php'</script>";
   }
}
?>

 

ainda da o mesmo problema, acredito ainda que seja cache, porque as vezes quando aparece o login errado, eu atualizo a pagina e o login certo aparece Oo ..

 

o que vocs acham ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque você não redireciona ao invés de mostrar um link? header("Location:")

 

Experimenta também, pra ir vendo o fluxo da tua aplicação, ir "pritando" na tela o id da sessão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, descobri uma coisa muito importante eu acho pra ajudar a gente descobrir o que ta acontecen.. percebi que é cache mesmo, tipo, quando eu faço login com o usuario e o nome aparece de outro, eu vou diretamente na pasta onde esta hospedado online e mudo uma virgula (qualquer bobeira) e salvo. quando eu volto no index.php exibindo o nome errado eu atualizo a pagina, assim parece que o browser percebe que alterei a virgula e muda o nome do login pro correto.

 

entenderam ? agora como posso resolver isso, alguem tem alguma ideia ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. qual browser está usando e a versão ?

2. qual sistema operacional e versão ?

3. qual versão do php e apache ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. qual browser está usando e a versão ?

2. qual sistema operacional e versão ?

3. qual versão do php e apache ?

 

1. chrome e internet explorer, testo em todos

2. Windows 7

3. não é o mais atual, é um versão antes, acho que é 5.2, tenho que chegar em casa e olhar

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente o script da forma como postou não parece ter problema, mesmo assim consulte esse link

http://forum.imasters.com.br/topic/342563-dicas-para-uso-de-variaveis-de-sessao/

 

 

faça também esse teste que postei no php.net em 2010

http://www.php.net/manual/en/ref.session.php#99664

 

ja ta tudo certim, sera que existia um meio de driblar o cache ? tipo, limpar ele antes de carregar cada pagina ? alguma coisa do tipo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso me parece um pouco mirabolante. Um problema de cache sem que tenha alterado o seu php.ini

 

Que tal tentar em outra máquina que não a sua?

 

e coloque pontos durante o fluxo do script, dando var_dump nas variaveis e ver o estado da tua aplicação com o passar do tempo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso me parece um pouco mirabolante. Um problema de cache sem que tenha alterado o seu php.ini

 

Que tal tentar em outra máquina que não a sua?

 

e coloque pontos durante o fluxo do script, dando var_dump nas variaveis e ver o estado da tua aplicação com o passar do tempo.

 

Parcero, coloquei var_dump($_SESSION['nomeuser']) na pagina index e inclusive na pagina de login.php onde vai depois de clicar em sair, percebi que mesmo quando eu clico em sair, na pagina login mostra o nome da sessão qualquer, ou seja, não esta destruindo né.

 

Mandei o pessoal do servidor onde ta o dominio restaurar o php.ini, talvez seja problema nele, só pode, depois posto aqui pra falar no que deu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parcero, coloquei var_dump($_SESSION['nomeuser']) na pagina index e inclusive na pagina de login.php onde vai depois de clicar em sair, percebi que mesmo quando eu clico em sair, na pagina login mostra o nome da sessão qualquer, ou seja, não esta destruindo né.

 

Mandei o pessoal do servidor onde ta o dominio restaurar o php.ini, talvez seja problema nele, só pode, depois posto aqui pra falar no que deu

Mas a função session_destroy() não desregistra as variáveis globais $_SESSION da seção nem os cookies associados a ela. Essa função retorna um falor booleano que diz se a sessão foi encerrada com sucesso ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas a função session_destroy() não desregistra as variáveis globais $_SESSION da seção nem os cookies associados a ela. Essa função retorna um falor booleano que diz se a sessão foi encerrada com sucesso ou não.

 

 

Pessoal, RESOLVIDO DEPOIS DE MAIS DE 1 MES .. Obrigado a todos ai que me ajudaram. O problema era no php.ini do servidor online, Pierry Bos deu a dica e pedi o pessoal pra restaurar e funcionou filé

 

VLW GENTE

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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