Bom pessoal, em face das dúvidas que surgem em relação ao controle de tempo que o usuário pode ficar inativo em um sistema, a busca normal é alguma função nativa que possa resolver esse problema facilmente.
Entretanto a função mais indicada: session_cache_expire() parece não funcionar muito bem.
Portanto desenvolvi uma classe que trata disso.
Tentem implementá-la:
Ná pagina imediatamente após o seu login, utilize o método primeiraPagina(). E nas outras páginas secundárias o paginasSec().
Question
LeãoBsb
Bom pessoal, em face das dúvidas que surgem em relação ao controle de tempo que o usuário pode ficar inativo em um sistema, a busca normal é alguma função nativa que possa resolver esse problema facilmente.
Entretanto a função mais indicada: session_cache_expire() parece não funcionar muito bem.
Portanto desenvolvi uma classe que trata disso.
Tentem implementá-la:
Ná pagina imediatamente após o seu login, utilize o método primeiraPagina(). E nas outras páginas secundárias o paginasSec().
O que acharam ?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
/*---
* PARA ALTERAR O TEMPO DE DURAÇÃO DA SUA SESSÃO (em minutos)
* ALTERE, PARA O VALOR DESEJADO, O N° "3"
* NAS LINHAS 13,27,37
---*/
class limiteTempoSessao {
/*---------- METODO PARA USO NA PRIMEIRA PÁGINA DEPOIS DO LOGIN ------------------------------------------*/
public function primeiraPagina(){
session_start();
$_SESSION ['time_m_agora'] = date("i"); # RECEBE O VALOR DO MINUTO ATUAL
$_SESSION ['time_m_fim'] = date("i")+ 3; # ADICIONA O TEMPO DE DURAÇÃO DA SUA SESSÃO
$_SESSION ['time_h_fim'] = date("H"); # RECEBE O VALOR DA HORA ATUAL
}
/*---------- METODO PARA USO EM TODAS AS PÁGINAS SECUNDÁRIAS ---------------------------------------------*/
public function paginasSec(){
session_start();
$_SESSION ['time_m_agora'] = date('i');
$_SESSION ['time_h_agora'] = date('H');
if ($_SESSION ['time_h_agora'] == $_SESSION ['time_h_fim']){
if ($_SESSION ['time_m_fim'] >= $_SESSION ['time_m_agora']){
$_SESSION ['timer_m_fim'] = date("i")+ 3;
};
if ($_SESSION ['time_m_fim'] < $_SESSION ['time_m_agora']){
echo "hora igual - sessão expirada";
session_destroy();
header ("Location: error.php");
};
};
if ($_SESSION ['time_h_agora'] != $_SESSION ['time_h_fim']){
if ($_SESSION ['time_m_fim'] < $_SESSION ['time_m_agora']){
$_SESSION ['timer_m_fim'] = date("i")+ 3;
};
if ($_SESSION ['time_m_fim'] >= $_SESSION ['time_m_agora']){
echo "hora diferente - sessão expirada";
session_destroy();
header ("Location: error.php");
};
};
}
}
?>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.