Ir para conteúdo

POWERED BY:

Arquivado

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

RBS

Expirar session

Recommended Posts

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

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

Boa, Rodrigo!

Assim tbm é uma excelente alternativa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.