Jump to content


Photo

Expirar Session


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

#1 hensusudo

hensusudo

    Novato no fórum

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

Posted 24/09/2008, 14:22

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.

#2 Maykel Esser

Maykel Esser

    Super Veterano

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

Posted 24/09/2008, 16:36

usa o set_time_limit

(y)

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#3 leandrok

leandrok

    Normal

  • Usuários
  • 100 posts
  • Sexo:Não informado
  • Localidade:Curitiba - PR

Posted 24/09/2008, 17:16

você poderia fazer assim.

cria uma $_SESSION["sessionTempo"] que armazena quando o usuário carrega a página fica assim

$_SESSION["sessionTempo"] = time();

ai você cria uma variavel $temposessao e define com o valor que você em segundos.

por exemplo

$temposessao = 60; //em segundos

/**
 * retorna se o tempo do usuário expirou.
 */
function tempoExpirado($temposessao) {
		if($_SESSION["sessionTempo"] < (time() - $temposessao)) {
			 return true;
		}
	return false;
}

ai você pode chamar nas páginas que você quer a função tempoExpirado($temposessao) que faz a verificação se o tempo passou o que você definiu se passou está expirado e retorna true, caso contrario retorna false.


poderia ser assim.

Falou

Edição feita por: leandrok, 24/09/2008, 17:18.


#4 hensusudo

hensusudo

    Novato no fórum

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

Posted 24/09/2008, 21:38

eu fiz o seguinte codigo, isso eu chamaria em toda a pagina? seria isso?

[codebox]ob_start();
session_cache_expire(1);
session_start();
if ($validacao == "10") {
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>";
}[/codebox]

vlw a ajuda pessoal!

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
[codebox]<?
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-->
<?
}
?>[/codebox]

se acharem algum erro ou alguma forma de simplificar.. avisa ai porfavor.. vlwww




0 user(s) are reading this topic

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

IPB Skin By Virteq