Maison  >  Article  >  développement back-end  >  Comment définir la durée d'une session en php ? Partagez de deux manières

Comment définir la durée d'une session en php ? Partagez de deux manières

PHPz
PHPzoriginal
2023-03-22 11:24:452799parcourir

La gestion des sessions est très importante lors de l'écriture d'applications Web utilisant PHP. Dans de nombreux cas, les sessions sont un moyen de suivre les opérations des utilisateurs sur le site Web. Par défaut, les sessions PHP sont détruites après la fermeture du navigateur.

Cependant, dans de nombreuses applications, la session doit être détruite à un moment précis ou après une période d'inactivité de l'utilisateur pour augmenter la sécurité du site Web, réduire la consommation de ressources, etc.

PHP fournit une méthode pour définir la durée de la session. Il existe deux façons de définir le cycle de vie d'une session : session.gc_maxlifetime et session.cookie_lifetime. Leurs différences et comment les utiliser seront expliquées en détail ci-dessous.

  1. session.gc_maxlifetime

session.gc_maxlifetime fait référence à la durée maximale du cycle de vie requise par le mécanisme de récupération de place de la session (c'est-à-dire la durée de survie de la session), qui est configurée dans le fichier php.ini. Par défaut, sa valeur est de 1 440 secondes, soit 24 minutes. Lorsque l'utilisateur n'effectue aucune opération dans les 24 minutes, le mécanisme de récupération de place de PHP détruira la session. Si vous devez augmenter ou diminuer la durée de vie de la session, vous pouvez modifier session.gc_maxlifetime à la valeur dont vous avez besoin.

Par exemple, si vous souhaitez prolonger la durée de vie de la session à 1 heure, vous pouvez définir la valeur de session.gc_maxlifetime dans php.ini à 3600 secondes :

session.gc_maxlifetime = 3600

De plus, vous pouvez également utiliser la fonction ini_set de manière dynamique dans un script Modifiez la valeur session.gc_maxlifetime de manière appropriée, par exemple :

ini_set('session.gc_maxlifetime', 3600);

Cependant, il convient de noter que cette valeur ne peut pas être trop grande, sinon cela gaspillerait les ressources du serveur et provoquerait d'autres problèmes.

  1. session.cookie_lifetime

session.cookie_lifetime fait référence à la durée du cycle de vie du cookie. Lorsque le cycle de vie du cookie expire, la session sera immédiatement détruite. Ce délai est obtenu en définissant le délai d'expiration du cookie. Par défaut, le cycle de vie du cookie PHP est de 0, c'est-à-dire que le cookie sera détruit après la fermeture du navigateur. Si vous souhaitez prolonger la durée de vie du cookie, vous pouvez définir session.cookie_lifetime sur la durée dont vous avez besoin. Par exemple, si vous souhaitez prolonger le cycle de vie des cookies à 1 heure, vous pouvez définir session.cookie_lifetime sur 3600 secondes :

session.cookie_lifetime = 3600

De même, vous pouvez également utiliser la fonction ini_set dans un script pour modifier dynamiquement la valeur de session.cookie_lifetime .

Il convient de noter que l'utilisation de session.cookie_lifetime pour définir la durée du cycle de vie de la session est relativement courte, car dans certains cas, comme la visite d'un site Web qui ne prend pas en charge les cookies ou la désactivation des cookies, la session PHP ne fonctionnera pas sans cookies. Peut jouer un rôle dans le suivi interpages.

Résumé

En PHP, il existe deux méthodes pour définir le cycle de vie de la session, à savoir session.gc_maxlifetime et session.cookie_lifetime. Le premier est obtenu en modifiant la durée de cycle de vie maximale du mécanisme de récupération de place, et le second est obtenu en définissant le délai d'expiration du cookie. Pendant l'utilisation, choisissez différentes méthodes selon différents scénarios d'application pour obtenir de meilleurs résultats. Dans le même temps, afin d'augmenter la sécurité et l'utilisation des ressources du site Web, vous devez définir la durée de la session de manière raisonnable.

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:
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