RBS 0 Denunciar post Postado Setembro 24, 2008 Olá pessoal, pesquisei no forum e achei alguns tópicos mas nada concreto, so complicou mais minha cabeça pois muitos disseram que era melhor usar cookies. Então é o seguinte criei um site com um sistema de login com vários níveis (admin, usuário, moderador), até aí tudo funciona direitinho, pego os valores por session e etc. No entanto gostaria saber como faço para quando o usuário fizer o login e entrar na área restrita mesmo que fique com a página aberta mas sem mexer nela ela expire appos 10 minutos(ex: sair para ir tomar um cafezinho e deixou o pc ligado. quando voltou e tentou mexer no sistema ele receber uma mensagem de aviso dizendo que a session expirou e ser redirecionado para pagina de login), ou também se ele fechar o site sem clicar em logout, a sua autênticação expira automaticamente. Alguém sabe como fazer isso? Obrigado pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Pirata_ 0 Denunciar post Postado Setembro 24, 2008 Cara, o que você precisa fazer e inserir um codigo em todas as paginas que vai ser executado pra ler qto tempo você está online por ex, na home do site, qdo o cara se logar você grava o tempo que ele ta logado $_SESSION['tempo'] = time(); aí você faz o if pra verificar if (time()+300 <= $_SESSION['tempo']) { // considerando que 300 = 5 minutos Teste isso e dps nos avise! Abs Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo_DaNaDao 0 Denunciar post Postado Setembro 24, 2008 //10 minutos para expirar session_cache_expire(10); session_start(); Compartilhar este post Link para o post Compartilhar em outros sites
Pirata_ 0 Denunciar post Postado Setembro 24, 2008 Boa, Rodrigo! Assim tbm é uma excelente alternativa! Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo_DaNaDao 0 Denunciar post Postado Setembro 24, 2008 [:D] Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 24, 2008 //10 minutos para expirar session_cache_expire(10); session_start(); Boaaaaaaaaaaaa Precisava disso amigo http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
{TeRmInAtOr} 1 Denunciar post Postado Setembro 24, 2008 Uma outra alternativa que estou adotando é adminsitrar as seções no banco de dados através de uma classe que desenvolvi (nada muito complicado), mas uso somente em aplicações maiores o que me dá maior controle sobre as ações dos usuários. Vejo em tempo real quem está logado, o que está fazendo, podendo deslogar o usuário, entre outras coisas muito legais. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Setembro 24, 2008 Uma outra alternativa que estou adotando é adminsitrar as seções no banco de dados através de uma classe que desenvolvi (nada muito complicado), mas uso somente em aplicações maiores o que me dá maior controle sobre as ações dos usuários. Vejo em tempo real quem está logado, o que está fazendo, podendo deslogar o usuário, entre outras coisas muito legais. Posta pra nós no laboratório amigo vai ajudar muita gente! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
RBS 0 Denunciar post Postado Setembro 24, 2008 Cara, o que você precisa fazer e inserir um codigo em todas as paginas que vai ser executado pra ler qto tempo você está online por ex, na home do site, qdo o cara se logar você grava o tempo que ele ta logado $_SESSION['tempo'] = time(); aí você faz o if pra verificar if (time()+300 <= $_SESSION['tempo']) { // considerando que 300 = 5 minutos Teste isso e dps nos avise! Abs Pirata_, eu fiz o seguinte codigo: ob_start(); session_cache_expire(10); session_start(); if ($validacao == "1") { if(($_SESSION['entrada'] + 600) < time()) { $_SESSION['validacao'] = null; session_destroy(); echo"<script>alert('a secao expirou, faça login novamente!'); window.top.location.href='index.php'</script>"; } sendo que ele expira apos 10 minutos de session.. porem eu keria que ele executasse apenas na inatividade... ou seja eu devo colocar isso em cada pagina eh? Compartilhar este post Link para o post Compartilhar em outros sites
RBS 0 Denunciar post Postado Setembro 25, 2008 galera acho que consegui, pelos meus testes ta tudo ok... abaixo ta o codigo para voces darem uma olhada e dizerem se ta tudo certo!! vlw <? ob_start(); session_cache_expire(10); session_start(); if ($validacao == "1") { if(($_SESSION['entrada'] + 600) < time()) { $_SESSION['validacao'] = null; session_destroy(); echo"<script>alert('a secao expirou, faça login novamente!'); window.top.location.href='index.php'</script>"; } $_SESSION['entrada'] = time(); $t = time(); ?> <!-- CONTEUDO DO SITE--> <? } ?> se acharem algum erro ou alguma forma de simplificar.. avisa ai porfavor.. vlwww Compartilhar este post Link para o post Compartilhar em outros sites
Augusto Herguet 0 Denunciar post Postado Fevereiro 19, 2014 essa função esta espirando em quanto tempo ? acho que vou por essa função na minha rede social. só que preciso de um tempo especifico.. galera acho que consegui, pelos meus testes ta tudo ok...abaixo ta o codigo para voces darem uma olhada e dizerem se ta tudo certo!!vlw <? ob_start(); session_cache_expire(10); session_start(); if ($validacao == "1") { if(($_SESSION['entrada'] + 600) < time()) { $_SESSION['validacao'] = null; session_destroy(); echo"<script>alert('a secao expirou, faça login novamente!'); window.top.location.href='index.php'</script>"; } $_SESSION['entrada'] = time(); $t = time(); ?> <!-- CONTEUDO DO SITE--> <? } ?> se acharem algum erro ou alguma forma de simplificar.. avisa ai porfavor.. vlwww Compartilhar este post Link para o post Compartilhar em outros sites