Este é o último post da mini-série onde foram dados os exemplos necessários para criar um sistema de login em PHP. Já foi mostrado os passos iniciais do sistema, como criar e validar uma sessão, e para finalizar vamos ver como encerrar uma sessão quando o usuário sair de nossa página.
Como encerrar uma sessão em PHP
Para terminar o que começamos nos posts anteriores, segue o código que encerra uma seção. Uma vez que esta foi iniciada é muito importante encerra-la para não deixar uma sessão aberta indevidamente.
<?php
session_start();
$_SESSION = array();
session_destroy();
header("Location: index.htm");
?>
Este código é bem simples, ele somente encerra uma seção. Salve este código como logout.php por exemplo e coloque um link para ele nas páginas onde uma seção for iniciada. Assim será possível um usuário encerrar uma seção do modo correto antes de abandonar a página.
Juntando tudo que já foi falado sobre sistema de login já da pra fazer uma projeto que autentica um usuário e verifica as permissões de acesso durante toda a sessão!
Até a proxima!
😉
Olá, então eu criei uma pagina php para o código e um botão “Sair” com o link mas ele somente redireciona o usuário e não fecha a sessão..
Olha kra, eu usei exatamente este código, e a linha session_destroy() acaba com a sessão, sem erros. O que pode estar acontecendo, é você ter criado mais de uma sessão no seu projeto, aí este código não está dando conta da demanda….
tenta ver se não é isto….
um jeito fácil de testar, é ir imprimindo todos os nomes das sessões no navegador pra ver qual está dando bobeira…..relaxa que este problema eh simples de resolver!
xD
vlw pelo coment!
Amigo, parabéns pela dica, era exatamente o que procurava.
Show de bola, valeu pela dica. 🙂
Valeu!
Valeu!
Obrigado pelo coment!
Fiz exatamente como esta ai acima, mas minha sessão mesmo assim não funciona e só tem uma página para ser fechada a sessao, não sei mais o que posso fazer. Alguém pode me ajudar por favor. Desde obrigada.
Parabens cara pela dica, funcionou certinho vlw.
Valeu cara!
precisando de algo posta aí no comentário! xD
Ajudou muito, veja como esta etecja.qlix.com.br
Ai sim!
Ajudou bastante. Valeu.
Valeu!
Bom dia amigo !!!
Gostaria muito da sua ajuda
Eu gostaria de encerrar a seção nas minhas paginas do php – pois quando as pessoas clicam no (x) da pagina e não clicam no “sair ” e tentam logar novamente – a pagina de login informar que ainda tem alguem utilizando – tem como fazer isso – ou seja se a pessoa clicar no (X) e sair e querer voltar a pagina de login posso abrir?
abaixo deixo o os codigos da pagina layout.htm que é a pagina onde todas as outras abrem dentro dela – e e tambem a pagina index.php e home.htm que é a pagina principal – se puder me ajudar agradeço :
http://recruta123.com.br/sf/layout-10.htm
http://recruta123.com.br/sf/indexphp.htm
http://recruta123.com.br/sf/home-20.htm
Acima eu criei umas paginas em htm e coloquei os codigos que utilizo atualmente . se pouder me dar uma dica de como fechar as seções
desde ja agradeço
Aguiar
Oi Aguiar,
foi mal a demora, estava de férias do blog, voltei esta semana.
Sobre seu problema, tem como resolver sim. De mais de uma maneira, então vou tentar te aconselhar com as que eu utilizaria.
A primeira ideia é fazer um script que valida a sessão do usuário, e adicionar este script na própria página de login. Se o usuário cair nesta página com uma sessão já ativa, ele faz alguma coisa que seja útil para seu sistema – tipo ser redirecionado para o home ou a página onde estava antes. Aqui no blog mesmo tem um post sobre isso. https://sdevlab.wordpress.com/2010/04/24/como-validar-sessao-php/
Outra maneira seria usar javascript e/ou jquery e/ou ajax (eventos onunload ou onbeforeunload). Mas aqui valem duas ressalvas: se o usuário tiver desabilitado scripts no navegador, esta ideia não funciona. E os eventos variam de navegador para navegador. Dá para usar, mas é bom fazer uma pesquisa antes.
Mais uma saída seria colocar tempo na sessão, ou um timer (depois da última ação que o usuário tomou, em x unidades de tempo a sessão expira).
Acho que já da pra dar uma brincada, qualquer coisa da um toque!
Pois é amigo , mas eu ja tentei de tudo – Seria pedir muito você copiar dos links acima fazer a melhor modificação e me enviar , e me dizer se preciso colocar em todas as paginas ou não . pois já tentei de tudo e não da certo se puder fazer isso por mim fico muito agradecido
http://recruta123.com.br/sf/layout-10.htm
http://recruta123.com.br/sf/indexphp.htm
http://recruta123.com.br/sf/home-20.htm
Veja se preciso modificar o index.php ou simplesmente colocar nas paginas de htm
um forte abraço
Aguiar
Oi Aguiar,
Me desculpe, mas corrigir código eu não posso. Eu fico mais nas dicas e propostas, botar a mão na massa, eu já não faço.
Usando uma citação maneira da Apple, se eu faço isso pra você, abro uma brecha pra qualquer outra pessoa fazer o mesmo pedido.
att
Olá , amigo , eu ja tentei muitas vezes e não da certo se puder modificar e me enviar todo o codigo
abaixo estão os codigos , pois nao sei se coloco nas paginas em php ou nas paginas em htm
http://recruta123.com.br/sf/layout-10.htm
http://recruta123.com.br/sf/indexphp.htm
http://recruta123.com.br/sf/home-20.htm
desde já agradeço
Aguiar
Oi Aguiar,
Se você quiser mandar uma pergunta mais pontual ou direta, eu posso tentar ajudar, mas como eu lhe disse, corrigir o seu código não vai rolar.
att
Boa tarde , voce conseguiu ver o que te pedi ???
se puder me ajudar agradeço muito amigo
É que tentei de todo jeito e não funciona
se voce puder colocar no código que deixei nos links abaixo e me informar onde que devo colocar precisamente , pois ja tentei de todas as formas e não da certo
abaixo deixo o os codigos da pagina layout.htm que é a pagina onde todas as outras abrem dentro dela – e e tambem a pagina index.php e home.htm que é a pagina principal – se puder me ajudar agradeço :
http://recruta123.com.br/sf/layout-10.htm
http://recruta123.com.br/sf/indexphp.htm
http://recruta123.com.br/sf/home-20.htm
Eae Aguiar,
Conforme te disse nos comentários anteriores, tirar uma dúvida, dar um toque eu posso, corrigir um código foge do escopo do blog…..
att
Valeu amigo , mesmo assim obrigado , se pudesse me dizer pelo menos onde colocar o codigo agradeceria
Mas mesmo assim obrigado
Show de bola, muito obrigado pela dica! 🙂
Valeu!