0 && ($agora - $ultimoAcesso) > SESSAO_INATIVIDADE_SEGUNDOS ) { destruirSessao(); header( 'Location: /login.php?expirada=1' ); exit; } /* * ===================================================== * EXPIRAÇÃO PELO TEMPO MÁXIMO * ===================================================== * * Mesmo que o usuário continue ativo, * a sessão não poderá ultrapassar 8 horas. */ if ( $inicioSessao > 0 && ($agora - $inicioSessao) > SESSAO_MAXIMA_SEGUNDOS ) { destruirSessao(); header( 'Location: /login.php?expirada=1' ); exit; } /* * ===================================================== * ATUALIZAÇÃO DA ATIVIDADE * ===================================================== * * A cada requisição autenticada, registra o momento * do último acesso. */ $_SESSION['last_activity'] = $agora; } /* * ========================================================= * FUNÇÃO DE DESTRUIÇÃO DA SESSÃO * ========================================================= * * Centraliza o procedimento utilizado quando uma sessão * precisa ser encerrada. */ function destruirSessao(): void { /* * Remove todos os dados armazenados na sessão. */ $_SESSION = []; /* * Remove o cookie da sessão no navegador. */ if (ini_get('session.use_cookies')) { $params = session_get_cookie_params(); setcookie( session_name(), '', time() - 42000, $params['path'], $params['domain'], (bool)$params['secure'], (bool)$params['httponly'] ); } /* * Destrói a sessão existente no servidor. */ session_destroy(); }