Maison > développement back-end > tutoriel php > Comment puis-je contrôler les délais d'expiration des sessions en PHP ?

Comment puis-je contrôler les délais d'expiration des sessions en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-19 00:10:10
original
470 Les gens l'ont consulté

How Can I Control Session Timeouts in PHP?

Contrôle des délais d'expiration de session en PHP

Lorsque vous travaillez avec PHP, vous devrez peut-être ajuster les paramètres de délai d'expiration de session par défaut. Bien que les modifications de php.ini offrent une solution, un accès limité à ce fichier peut vous inciter à rechercher des méthodes alternatives.

Délai d'expiration de session strict

Pour imposer une limite supérieure stricte d'inactivité de session, nous pouvons implémenter logique personnalisée qui stocke cette limite dans les données de session :

session_start();

$now = time();
if (isset($_SESSION['discard_after']) && $now > $_SESSION['discard_after']) {
    // Session has expired, destroy and start a new one
    session_unset();
    session_destroy();
    session_start();
}

// Set expiration time for both new and existing sessions
$_SESSION['discard_after'] = $now + 3600;
Copier après la connexion

Délai d'expiration de session détendu

Si vous imposez une limite stricte est inutile, vous pouvez vous appuyer sur des paramètres de configuration PHP spécifiques pour établir une limite inférieure :

// Server retains session data for at least 1 hour
ini_set('session.gc_maxlifetime', 3600);

// Clients retain session ID for exactly 1 hour
session_set_cookie_params(3600);

session_start();
Copier après la connexion

Cette approche demande au serveur de stocker les données de session pendant au moins une heure et aux clients de supprimer leur identifiant de session après la même durée.

Considérations

Lors de l'imposition de délais d'attente de session, il est crucial de prendre en compte les paramètres côté client et côté serveur. Pour un contrôle et une prévisibilité maximum, combinez une limite supérieure stricte avec la limite inférieure de session.gc_maxlifetime. Cependant, sachez que la préservation de l'ID de session peut mériter une certaine attention, surtout si sa valeur est sensible.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal