Comment définir la durée de vie d'une session PHP à 30 minutes et la terminer automatiquement ?
Bonjour à tous ! Je suis débutant en PHP et j'ai rencontré un problème de gestion des sessions. J'ai besoin que la session d'un utilisateur sur mon site expire automatiquement après 30 minutes d'inactivité. J'ai lu la documentation, mais je me suis embrouillé dans les paramètres.
Voici ce que j'ai essayé :
```php
// Au début de chaque page
session_start();
// J'ai essayé de définir la durée de vie via ini_set
ini_set('session.gc_maxlifetime', 1800);
ini_set('session.cookie_lifetime', 1800);
```
Mais cela ne fonctionne pas — la session reste active même après une heure. Je vérifie l'heure de la dernière action de l'utilisateur comme ceci :
```php
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
session_destroy();
session_unset();
header('Location: login.php');
exit;
}
$_SESSION['LAST_ACTIVITY'] = time();
```
Mais cela entraîne la déconnexion de l'utilisateur même lorsqu'il travaille activement, s'il n'a pas actualisé la page depuis longtemps. Comment implémenter correctement un timeout de session après exactement 30 minutes d'inactivité ?