Jump to content


Photo

Encerrar Sessão


  • Faça o login para participar
9 replies to this topic

#1 Célio-Ctba

Célio-Ctba

    12 Horas

  • Usuários
  • 293 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 14/12/2006, 14:14

Tenho uma tabela com usuarios e niveis, qdo o user faz login eu crio variaveis de sessao para o ID e para o NIVEL. Só q da forma como estou encerrando esta sessão, quando faço logout e entro com um usuario de nivel mais baixo, ele consegue ver tudo q não deveria para o nivel dele.

login.php
$_SESSION["login"] = $_POST["ID"];
$_SESSION["nivel"] = $_POST["NIVEL"];



logout.php
session_start();
session_unset($_SESSION["login"]);
session_unset();



Tem algo errado?
- Jesus -

#2 ursolouco

ursolouco

    Normal

  • Usuários
  • 92 posts
  • Sexo:Não informado

Posted 14/12/2006, 14:26

session_destroy();

[]s
Boa Programação!
-------------------------------------------------------------------------------------
http://www.desenvolvendosites.com

#3 Andreia Regina

Andreia Regina

    Veterano

  • Conselheiros
  • 1347 posts
  • Sexo:Feminino
  • Localidade:PR
  • Interesses:PHP; MySQL; Javascript; CSS; tudo ligado ao desenvolvimento web.

Posted 14/12/2006, 14:26

Eu uso

session_unset();
session_destroy();

**** Editando

Respondemos juntos ursoloco rs.

Edição feita por: Andreia Regina, 14/12/2006, 14:32.

Fórum WMO - Conselheira - Na equipe desde 31/01/2006.
Links importantes: Regras de conduta - Busca do fórum


#4 Célio-Ctba

Célio-Ctba

    12 Horas

  • Usuários
  • 293 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 14/12/2006, 14:34

Mas é preciso especificar qual sessão está querendo encerrar?
tipo: session_destroy($login); ??
- Jesus -

#5 ursolouco

ursolouco

    Normal

  • Usuários
  • 92 posts
  • Sexo:Não informado

Posted 14/12/2006, 14:40

Não,!!

Ele automaticamente vai matar todas as sessions aberta de sua aplicação

[]s
Boa Programação!
-------------------------------------------------------------------------------------
http://www.desenvolvendosites.com

#6 Célio-Ctba

Célio-Ctba

    12 Horas

  • Usuários
  • 293 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 14/12/2006, 15:47

Só pra esclarecer um pouco mais já que estamos nesse assunto: se eu faço assim
<?php
session_start();
session_destroy();
echo "a sessao destruida foi".$login;
?>

Ele ainda mostra o valor da sessão mesmo o echo estando depois do destroy(), não deveria apagar o valor já na linha do echo?
Apesar q se tento voltar no browser apos passar por este arquivo, ele não permite ou seja funciona normalmente.
- Jesus -

#7 ursolouco

ursolouco

    Normal

  • Usuários
  • 92 posts
  • Sexo:Não informado

Posted 14/12/2006, 16:07


<?php

session_start(); // iniciou

session_register("session_login"); $session_login = 'ursolouco';

echo $session_login;

session_destroy();

echo $session_login;

?>

[]s
Boa Programação!
-------------------------------------------------------------------------------------
http://www.desenvolvendosites.com

#8 Célio-Ctba

Célio-Ctba

    12 Horas

  • Usuários
  • 293 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 14/12/2006, 16:23

Essa é minha dúvida, ali na segunda vez q vc deu echo $session_login; não deveria mostrar mais o valor, não seria o correto?
- Jesus -

#9 ursolouco

ursolouco

    Normal

  • Usuários
  • 92 posts
  • Sexo:Não informado

Posted 14/12/2006, 16:27

Essa é minha dúvida, ali na segunda vez q vc deu echo $session_login; não deveria mostrar mais o valor, não seria o correto?


Sim Brother!!

No seu host ainda continua exibindo o conteudo de seu $session ?

Que tal vc usar assim $_SESSION['session_login']; ?

Eu tenho o mal costume de trabalhar com register_globals = on e tudo que registro fica liberador.

mas vc pode fazer assim

unset($session_login);

Desta forma vc mata a variavel de qualquer jeito.

[]S
Boa Programação!
-------------------------------------------------------------------------------------
http://www.desenvolvendosites.com

#10 wesley.tome

wesley.tome

    24 Horas

  • Usuários
  • 422 posts
  • Sexo:Masculino

Posted 14/12/2006, 22:16

Ah, pode fazer assim tb, nomeia a sessão tipo usuario.

$_SESSION[USUARIO]["login"] = $_POST["ID"];
$_SESSION[USUARIO]["nivel"] = $_POST["NIVEL"];

//elimina a variavel
$_SESSION[USUARIO] = array();
//desregistrar a variável da sessão
unset ($_SESSION[USUARIO]);

.................




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq