Ir para conteúdo

POWERED BY:

Arquivado

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

CoDcAbEçA

Porque não dá logout?

Recommended Posts

Olha o exemplinho que fiz. O que está errado, é um exemplinho bobo, mas preciso de uma explicação para tal funcionamento. Quando dou logout ele parece ter feito tudo certo. Porém se dou VOLTAR pelo browser ele volta na área protegida. Como corrigir isso?Tenho dois arquivos a e b-----------------------------------Arquivo a-----------------------------------<? session_start("pref"); $usuid=$_GET["usuID"]; $usunome=$_GET["nome"]; session_register("usuID","usunome"); if ($_GET["lougout"]=='S'){ session_unset($_SESSION["usuID"]); session_destroy(); } if (isset($usuid) ) echo "<script> document.location.href=\"b.php\"</script>";?><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="a.php" method="get" name="teste"><input name="usuID" type="text"><input name="nome" type="text"><input name="enviar" type="submit"></form></body></html>-----------------------------------Arquivo b-----------------------------------<? session_start("pref"); $usuid=$_SESSION["usuID"]; $usunome=$_SESSION["usunome"]; if (!session_is_registered("usuID")) { header("Location: a.php"); exit(); }echo "Olá: " . $usuid . $usunome;?><html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><a href="a.php?logout=S">Logout</a></body></html>Por favor se alguém puder ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve usar diretivas do cabeçalho http para que não fique gravado nenhum cache da página.

Em relação ao código, aparentemente não há nada de anormal...

 

A não ser pela sintaxe da função session_start, o parametro dela é void! Portanto é desnecessário o usuo de um nome como parametro.

 

http://br2.php.net/session_start

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algo do tipo:

header("Cache-Control: private, no-store, no-cache, must-revalidate"); //HTTP 1.1header("Cache-Control: post-check=0, pre-check=0", false); // HTTP 1.1header("Pragma: no-cache"); // HTTP 1.0
deverá evitar a gravação de cache!

 

Quando a dar logout quando o usuario digitar uma url, tem como fazer combinando com js. Mas é método meio furado... pq não dá pro browser saber se a url que foi digitada é fora do seu site! O jeito mesmo é trabalhar com timeout nas sessões.

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.