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.
Expirar Session
Started By hensusudo, 24/09/2008, 14:22
3 replies to this topic
#1
Posted 24/09/2008, 14:22
#2
Posted 24/09/2008, 16:36
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#3
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
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
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
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
[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)