Maison développement back-end Problème PHP Comment définir le délai d'expiration de la session en PHP

Comment définir le délai d'expiration de la session en PHP

Apr 04, 2023 pm 01:59 PM

Lors de l'écriture de sites Web PHP, les développeurs stockent souvent les données utilisateur dans Session pour implémenter des fonctions telles que le transfert d'informations entre pages et l'authentification des utilisateurs. Par défaut, les sessions PHP sont automatiquement effacées à la fin de la session ou expirent à la fermeture du navigateur. Cependant, les développeurs doivent parfois contrôler plus précisément le délai d’expiration de la session pour que la session reste valide pendant une certaine période. Cet article explique comment définir le délai d'expiration de la session en PHP.

  1. Concepts de base

Avant de commencer, nous devons comprendre les deux concepts suivants :

ID de session : chaque utilisateur se verra attribuer un ID de session unique lors de l'établissement d'une session avec le serveur, qui est utilisé pour identifier l'utilisateur. état de la session.

Variables de session : les variables de session font référence aux variables stockées côté serveur pendant la session. Elles sont utilisées pour stocker les données utilisateur.

  1. Comment modifier le délai d'expiration de la session

2.1. Modifier le fichier php.ini

Le délai d'expiration de la session PHP peut être défini dans le fichier de configuration php.ini, à l'aide du paramètre session.gc_maxlifetime, en secondes. Par défaut, sa valeur est de 1 440 secondes, soit 24 minutes. Vous pouvez le modifier en suivant les étapes ci-dessous :

  1. Ouvrez le fichier de configuration php.ini.
  2. Retrouvez la ligne suivante : session.gc_maxlifetime = 1440.
  3. Changez 1440 pour le délai d'expiration souhaité en secondes.
  4. Enregistrez et fermez le fichier php.ini.
  5. Redémarrez le serveur Web.

La modification de ce paramètre affectera le délai d'expiration de la session de tous les scripts PHP.

2.2. Définir dans le code

Si vous avez uniquement besoin de modifier l'heure d'expiration de la session d'une certaine page, ou de définir dynamiquement l'heure d'expiration de la session dans le code selon vos besoins, vous pouvez utiliser le code suivant :

<?php
session_start (); // Démarrer la session
$expireTime = 60*30; // Le délai d'expiration est de 30 minutes
$_SESSION['timeout'] = time() + $expireTime; Variable de session
?> ;

Dans le code, utilisez $_SESSION['timeout'] pour spécifier une variable de session liée à l'heure d'expiration. Il stocke la valeur de l'horodatage actuel (time()) plus l'heure d'expiration ($expireTime). Chaque fois que vous visitez la page, vous pouvez vérifier si cette variable a expiré. Si elle a expiré, appelez la fonction session_destroy() pour détruire la session.

2.2.1. En modifiant les paramètres du cycle de vie de la session

Vous pouvez également utiliser la fonction session_set_cookie_params() pour définir l'heure d'expiration de la session dans le code. Cette fonction peut accepter plusieurs paramètres, dont le plus important est le paramètre de cycle de vie de la session, qui détermine le délai d'expiration de la session.

Ce qui suit est un exemple :

<?php
session_start();
$expireTime = 60*30; // Le délai d'expiration est de 30 minutes
session_set_cookie_params($expireTime);
?>

Ce code will Le délai d'expiration de la session est fixé à 30 minutes.

  1. Autres notes

Que ce soit en modifiant le fichier php.ini, en le définissant dans le code, ou en le définissant via les paramètres du cycle de vie de la Session, il y a les notes suivantes :

  • L'heure d'expiration de la Session n'est pas absolument exact. Parce qu'il repose sur le mécanisme de récupération de place PHP, le délai d'expiration réel peut être incompatible avec le délai défini en raison de plusieurs facteurs.
  • Si vous utilisez une technologie d'équilibrage de charge multi-serveurs, vous devez vous assurer que les ID de session de tous les serveurs sont les mêmes, sinon des problèmes d'incohérence de session se produiront.

La session est une fonctionnalité très importante lors de l'écriture d'applications PHP. En définissant le délai d'expiration de la session, vous pouvez mieux protéger la sécurité des données utilisateur et éviter un gaspillage inutile des ressources du serveur.

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

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP Mar 03, 2025 pm 04:41 PM

Quelles sont les meilleures pratiques pour la déduplication des tableaux PHP

Quelles sont les dernières normes de codage PHP et les meilleures pratiques? Quelles sont les dernières normes de codage PHP et les meilleures pratiques? Mar 10, 2025 pm 06:16 PM

Quelles sont les dernières normes de codage PHP et les meilleures pratiques?

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé? La déduplication PHP Array peut-elle profiter de l'unicité du nom clé? Mar 03, 2025 pm 04:51 PM

La déduplication PHP Array peut-elle profiter de l'unicité du nom clé?

Comment puis-je travailler avec les extensions de PHP et PECL? Comment puis-je travailler avec les extensions de PHP et PECL? Mar 10, 2025 pm 06:12 PM

Comment puis-je travailler avec les extensions de PHP et PECL?

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP? Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP? Mar 10, 2025 pm 06:15 PM

Comment implémenter les files d'attente de messages (Rabbitmq, Redis) dans PHP?

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance? La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance? Mar 03, 2025 pm 04:47 PM

La déduplication du tableau PHP doit-elle être prise en compte pour les pertes de performance?

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP Mar 03, 2025 pm 04:50 PM

Quelles sont les techniques d'optimisation pour la déduplication des tableaux PHP

Comment utiliser la réflexion pour analyser et manipuler le code PHP? Comment utiliser la réflexion pour analyser et manipuler le code PHP? Mar 10, 2025 pm 06:12 PM

Comment utiliser la réflexion pour analyser et manipuler le code PHP?

See all articles