Cómo establecer el tiempo de vida de una sesión PHP en 30 minutos y finalizarla automáticamente
¡Hola a todos! Soy nuevo en PHP y me encontré con un problema al gestionar sesiones. Necesito que la sesión de un usuario en mi sitio web expire automáticamente después de 30 minutos de inactividad. Leí la documentación, pero me confundí con la configuración.
Esto es lo que probé:
```php
// Al inicio de cada página
session_start();
// Intenté establecer el tiempo de vida mediante ini_set
ini_set('session.gc_maxlifetime', 1800);
ini_set('session.cookie_lifetime', 1800);
```
Pero no funciona — la sesión sigue activa incluso después de una hora. Verifico la última actividad del usuario así:
```php
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
session_destroy();
session_unset();
header('Location: login.php');
exit;
}
$_SESSION['LAST_ACTIVITY'] = time();
```
Pero esto provoca que el usuario sea expulsado incluso cuando está trabajando activamente, si no ha actualizado la página por un tiempo. ¿Cómo implementar correctamente un timeout de sesión exactamente después de 30 minutos de inactividad?