Jump to content


Photo

Session_Destroy(); Estou Fazendo Corretamente?


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

#1 cezarluiz

cezarluiz

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 16/12/2009, 15:59

Fiz um sistema de login, ele está entrando, pegando as informações do MS SQL e assim, o problema acho que esta na session_destroy(); pois se eu saio do login e tento entrar com outro login, ele mostra as informações do login anterior... entenderam? :D

Pois bem, o código é o seguinte:

session_start();
      if(isset($_GET['ir']) && $_GET['ir'] == 'sair'):
            unset($_SESSION['login']);
            unset($_SESSION['senha']);
            session_destroy();
      endif;
      
         if(!isset($_SESSION['login']) && !isset($_SESSION['senha'])):
         header("location:index.php?stein=logar");
      endif;

Dai para clicar tipo "Sair do painel" eu coloco assim...

<a href="?ir=sair">Sair do Painel</a>

Estou fazendo corretamente?

#2 douglas.ck

douglas.ck

    Ativo

  • Usuários
  • 390 posts
  • Sexo:Masculino

Posted 16/12/2009, 16:41

Olá...

Tenta fazer assim:

if($_GET[ir] == "sair"){
$_SESSION[login_usuario] = "";
$_SESSION[senha_usuario] = "";
echo "<script>document.location.href='index.php?stein=logar';</script>";
}

Teste e me diga se era o que precisava...

Att.

Douglas

#3 cezarluiz

cezarluiz

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 16/12/2009, 17:21

Realmente ficou na mesma... :/

Então seguinte, para acessar o painel ele estava dando esse erro:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\index.php:7) in C:\AppServ\www\login.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\index.php:7) in C:\AppServ\www\login.php on line 33

Pesquisei a respeito.. e disseram para adicionar ob_start(); no script.. Fiz isso, mas nada, dava o mesmo erro, fui mais a fundo e vi que teria que deixar a opção output_buffering = Off, deixa-la On. Fiz isso e funcionou entrou no painel sussegado, porém será que tem algo haver? Essa opção nao estar destrindo a sessao?

Obrigado.

#4 douglas.ck

douglas.ck

    Ativo

  • Usuários
  • 390 posts
  • Sexo:Masculino

Posted 16/12/2009, 17:39

Ué...

Uso assim direto e funciona maravilha...

Agora olhando o código que te passei vi que tem variaveis diferentes das suas, usei login_usuario e senha_usuario, mas na verdade é só login e senha.

O código abaixo esta consertado:

if($_GET[ir] == "sair"){
$_SESSION[login] = "";
$_SESSION[senha] = "";
echo "<script>document.location.href='index.php?stein=logar';</script>"
;
}

Desculpe meu erro...

Att.

Douglas

#5 cezarluiz

cezarluiz

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 16/12/2009, 18:18

Douglas, ainda nada :/ e o estranho que quando clicar em Sair do painel e ir pra pagina de Logar, que é colocar login e senha, ele está indo para a pagina de Home, eu uso SSI(Server Side Includes) e ele vai pra home quando a pagina é "inexistente".

No Script, faltou as '' ali no array, coloquei, mas mesmo assim nada :/

Edição feita por: cezarluiz, 16/12/2009, 18:19.


#6 douglas.ck

douglas.ck

    Ativo

  • Usuários
  • 390 posts
  • Sexo:Masculino

Posted 16/12/2009, 18:57

OLá...

Certeza absoluta que os links estão certos, pois se ele vai para a pagina inicial quanto tem pagina errada, então pelo lógica tem link errado...

Da uma conferida bem detalhada pra ver se ta tudo certo, pois pra mim funciona legal o que te mostrei... tanto da forma como te mostrei como tambem funciona pra mim o "session_destroy();"...

Veja ai e volta a postar...

Att.

Douglas

#7 cezarluiz

cezarluiz

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 16/12/2009, 19:48

Li e reli o script.. confesso que tbm nao entendo, pois estava usando com outro site o memso sistema de login :/, mas vou descobrir o erro hehe valeu, ou dar uns jeitos ^^

#8 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 16/12/2009, 20:27

Fiz um sistema de login, ele está entrando, pegando as informações do MS SQL e assim, o problema acho que esta na session_destroy(); pois se eu saio do login e tento entrar com outro login, ele mostra as informações do login anterior... entenderam? :D

Mostra as informações do login anterior como?

Se você está usando unset() você não precisa estar usando a função session_destroy(). Este redirect com a função header() está funcionando no logoff? :ponder:

[]’sAté mais

#9 cezarluiz

cezarluiz

    Novato no fórum

  • Usuários
  • 14 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 17/12/2009, 02:37

Isso, ele continua mostrando as informações do login anterior assim:

se eu entro com o login/senha, teste/teste, ele me mostra as informações, dai se eu entro com o login/senha, site/teste, ja é um outro login, só que continua mostrando as informações do teste/teste.

Então pelo fato de eu usar SSI Includes acho que tbm tem algo haver, mas a função header esta funcionando perfeitamente, mas ela é tipo, se a pessoa entra no painel.php e não tiver em sessão, ela volta pro login.php, só que se eu acesso http://localhost:8090/painel.php, ela não é executada continua no painel, com a sessao "ligada".

Caso alguém queira ver o funcionamento do site, podem acessar:
http://stm.sytes.net...php?stein=logar

Usem os dois logins/senha repsectivamente
teste/teste
site/teste

Porém estava vendo o seguinte, acesse o painel com um login acima, depois entre http://stm.sytes.net:8090/painel.php , ele vai continuar mostrando o painel, dai clique em Sair do painel, e depois se logue com teste/teste, ele simplesmente dai quebra a sessão, estranho né :x

Bem, pelo que percebi meio que estava em "conflito" com o SSI... A solução que eu tive no momento foi abrir o painel em um popup, assim nao tendo vinculo com o SSI, e com isso funcionou perfeitamente.

A solução no momento qeu eu vi é essa, se alguem souber de outras que de para mim vincular com o SSI, ajudem.

Obrigado a todos.

Edição feita por: cezarluiz, 17/12/2009, 02:38.


#10 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 17/12/2009, 09:24

Tentei entrar no seu link aí mas... ele não está funcionando!

Quando dá esse erro que você disse aí:

Cannot send session cache limiter - headers already sent

É porque você deixou espaços em branco logo após o fechamento da tag php!

Tenta ir no final desse arquivo que você está usando e apagar todos os espaços em branco que estão após a tag ?>

Veja se deu certo!

A primeira vista o seu código está correto!
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.




0 user(s) are reading this topic

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

IPB Skin By Virteq