Page 178 - Programador-PHP
P. 178
Programación Procedural de Aplicaciones Web de baja complejidad
PHP Experto – Tomo I Eugenia Bahit
function obtener_ultimo_acceso() {
$ultimo_acceso = 0;
if(isset($_SESSION['login_date'])) {
$ultimo_acceso = $_SESSION['login_date'];
}
return $ultimo_acceso;
}
El siguiente paso, será verificar el tiempo de inactividad de la
sesión y actualizarlo:
/*
Esta función, retornará el estado de la sesión:
sesión inactiva, retornará False mientras que sesión activa,
retornará True.
Al mismo tiempo, se encarga de actualizar la variable de sesión
login_date, cuando la sesión se encuentre activa
*/
function sesion_activa() {
$estado_activo = False;
$ultimo_acceso = obtener_ultimo_acceso();
/*
Establezco como límite máximo de inactividad (para mantener la
sesión activa), media hora (o sea, 1800 segundos).
De esta manera, sumando 1800 segundos a login_date, estoy definiendo
cual es la marca de tiempo más alta, que puedo permitir al
usuario para mantenerle su sesión activa.
*/
$limite_ultimo_acceso = $ultimo_acceso + 1800;
/*
Aquí realizo la comparación. Si el último acceso del usuario,
más media hora de gracia que le otorgo para mantenerle activa
la sesión, es mayor a la marca de hora actual, significa entonces
que su sesión puede seguir activa. Entonces, le actualizo la marca
de tiempo, renovándole la sesión
*/
if($limite_ultimo_acceso > time()) {
$estado_activo = True;
# actualizo la marca de tiempo renovando la sesión
$_SESSION['login_date'] = time();
}
return $estado_activo;
}
Finalmente, crearemos una pequeña función, que llame a la
anterior, y en caso de recibir como resultado que la sesión está
178