Définir le délai d'expiration de la session en php

Définir le délai d'expiration de la session en php
L'inactivité d'un utilisateur enregistré est vérifié par le délai d'expiration de la session. Lorsqu'un utilisateur se connecte dans un site Web, une session crée pour cet utilisateur et que la session est détruite lorsque l'utilisateur se déconnecte ou ferme le navigateur. Le délai d'attente de session est utilisé pour définir le délai de l'inactivité de l'utilisateur. Supposons que si la limite de délai d'expiration de la session est définie sur 60 secondes et que l'utilisateur est inactif pendant 60 secondes, la session de cet utilisateur sera expirée et l'utilisateur devra se connecter à nouveau pour accéder au site. La façon de définir ou de mettre à jour le délai d'expiration de la session dans PHP s'est montré dans ce tutoriel.

Gestion de session en php

Le session_start () La fonction est utilisée pour créer une nouvelle session pour l'utilisateur. Le nom de session par défaut est PhpSesSID et il est utilisé pour vérifier que la session existe ou non. Si aucune information de cookie ou de session n'est trouvée, une nouvelle session sera générée pour l'utilisateur, sinon, la session actuelle sera utilisée pour l'utilisateur.

Délai d'expiration de la session

La limite de délai d'expiration de la session peut être définie en définissant la valeur de deux directives dans le php.ini fichier ou en utilisant la fonction ini_set () dans le script PHP. Les directives sont données ci-dessous.

  1. session.gc_maxlifetime
  2. Il est utilisé pour définir le délai en secondes pour stocker les informations de session dans le serveur pendant longtemps.

  3. session.cookie_lifetime
  4. Il est utilisé pour définir la limite de temps d'expiration pour le cookie PhpSessid.

Définir le délai d'expiration de la session en php

Les moyens de définir la valeur de délai d'expiration de la session en PHP pour gérer la session d'un utilisateur ont été affichés dans cette partie du tutoriel en utilisant plusieurs exemples.

Exemple-1: Définissez la valeur de délai d'expiration de la session à l'aide des directives PHP

Créez un fichier PHP avec le script suivant pour connaître la façon de définir le délai d'expiration de la session en utilisant des directives PHP et des séances de gestion en fonction des valeurs de directive. Le ini_set () La fonction a été utilisée dans le script pour définir la valeur du session.gc_maxlifetime et session.cookie_lifetime directives. La durée de la session a été définie sur 2 secondes à des fins de test. La variable superglobale $ _cookie Array a été utilisée ici pour gérer la session. La nouvelle session sera générée pour l'utilisateur lorsque le script s'exécutera dans le navigateur et après deux secondes, la session sera expirée.

// Définissez le délai d'expiration de la session pendant 2 secondes
$ timeout = 2;
// Définissez le maxlifettime de la session
ini_set ("Session.gc_maxlifetime ", $ timeout);
// Définit la durée de vie des cookies de la session
ini_set ("Session.cookie_lifetime ", $ timeout);
// Démarrer une nouvelle session
session_start ();
// Définissez le nom de session par défaut
$ s_name = session_name ();
// Vérifiez que la session existe ou non
if (isset ($ _cookie [$ s_name]))
setcookie ($ s_name, $ _cookie [$ s_name], time () + $ timeout, '/');
Echo "La session est créée pour $ s_name.
"

autre
Echo "La session est expirée.
"
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus pour la première fois. La sortie affiche le nom d'utilisateur de session par défaut, PhPSESSID.

La sortie suivante apparaîtra si la page est actualisée après 2 secondes.

Exemple-2: Définissez la valeur de délai d'expiration de la session à l'aide de $ _Session Array

Créez un fichier PHP avec le script suivant pour définir la valeur de délai d'expiration de la session à l'aide de la variable PHP Superglobal, $ _SESSION. La durée de la session a été définie sur 5 secondes à des fins de test. Ensuite, l'heure de demande de l'utilisateur pour la page a stocké dans une variable nommée $ time. Lorsque la durée entre le $ time variable et la dernière activité de l'utilisateur sera plus de 5 secondes, puis la session actuelle de l'utilisateur sera détruite et une nouvelle session sera générée. Le session_unset () et session_destroy () Les fonctions ont utilisé dans le script pour détruire la session.

// Démarrer une nouvelle session
session_start ();
// définir la durée de la session pendant 5 secondes
$ durée = 5;
// Lire l'heure de demande de l'utilisateur
$ time = $ _server ['request_time'];
// Vérifiez que la session de l'utilisateur existe ou non
if (isset ($ _ session ['last_activity']) &&
($ time - $ _Session ['last_activity'])> $ durée)
// Unparent les variables de session
session_unset ();
// détruire la session
session_destroy ();
// Démarrer une autre nouvelle session
session_start ();
Echo "Une nouvelle session est créée.
"

autre
Echo "La session en cours existe.
"
// Définit l'heure de la dernière activité de l'utilisateur
$ _Session ['last_activity'] = $ time;
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus pour la première fois.

La sortie suivante apparaîtra si la page est actualisée après 5 secondes.

Exemple-3: Définissez la valeur de délai d'expiration de la session à l'aide de $ _Session Array and Time () Fonction

Créez un fichier PHP avec le script suivant pour définir la valeur de délai d'expiration de session à l'aide de la variable PHP Superglobal, $ _Session, et la fonction PHP intégrée, time (). La fonction time () renvoie la valeur horodatrice actuelle du système. La durée de la session a été définie sur 600 secondes (10 minutes) dans le script.

La $ _Session ['start'] a été utilisée pour stocker l'heure de début de la session. Lorsque la durée entre l'heure actuelle et l'heure de début de la session sera plus de 10 minutes, la session actuelle de l'utilisateur sera détruite. Les fonctions session_unset () et session_destroy () ont été utilisées dans le script comme exemple précédent pour détruire la session.

// Démarrer une nouvelle session
session_start ();
// Vérifiez que l'heure de début de la session est définie ou non
si(!isset ($ _ session ['start']))

// Définissez l'heure de début de la session
$ _Session ['start'] = time ();

// Vérifiez que la session est expirée ou non
if (isset ($ _ session ['start']) && (time () - $ _Session ['start']> 600))
// Unparent les variables de session
session_unset ();
// détruire la session
session_destroy ();
Echo "La session est expirée.
"

autre
Echo "La session en cours existe.
"
?>

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus pour la première fois. Le message expiré sera affiché si la page est actualisée après 10 minutes.

Conclusion

Trois façons différentes de définir la valeur de délai d'expiration de la session pour gérer la session d'un utilisateur dans PHP ont été affichées dans ce tutoriel. Les utilisateurs de PHP obtiendront le concept de base de la mise en œuvre de la session de l'utilisateur en utilisant des variables $ _cookie et $ _Session et être en mesure de l'appliquer dans leur script après avoir lu ce tutoriel.