Maison > développement back-end > tutoriel php > Comment faire expirer une session PHP après 30 minutes d'inactivité ?

Comment faire expirer une session PHP après 30 minutes d'inactivité ?

DDD
Libérer: 2024-12-20 03:29:13
original
259 Les gens l'ont consulté

How to Make a PHP Session Expire After 30 Minutes of Inactivity?

Expire la session PHP après 30 minutes

Question :
Comment puis-je créer une session PHP qui expire après 30 minutes ?

Réponse :

Méthode : implémenter un délai d'expiration de session personnalisé

Les méthodes d'expiration de session intégrées de PHP, telles que session.gc_maxlifetime et session.cookie_lifetime ne sont pas fiables en raison de divers facteurs. Au lieu de cela, implémentez votre propre délai d'attente en utilisant :

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
  session_unset();
  session_destroy();
}
$_SESSION['LAST_ACTIVITY'] = time();
Copier après la connexion

Ce code met à jour l'horodatage de la session à chaque demande, gardant le fichier de session actif et empêchant une suppression prématurée par le ramasse-miettes.

Sécurité supplémentaire :

Pour vous protéger contre le piratage de session, régénérez l'ID de session périodiquement :

if (!isset($_SESSION['CREATED'])) {
  $_SESSION['CREATED'] = time();
} else if (time() - $_SESSION['CREATED'] > 1800) {
  session_regenerate_id(true);
  $_SESSION['CREATED'] = time();
}
Copier après la connexion

Remarques :

  • Définissez session.gc_maxlifetime pour qu'il soit au moins égal au délai d'expiration personnalisé (1 800 dans cet exemple).
  • Pour expirer la session après 30 minutes d'activité, utilisez setcookie avec une heure d'expiration time() 60*30.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal