Rechercher une fonction PHP

Gestion personnalisée des sessions

Pour implémenter un stockage en base de données, ou toute autre méthode, vous aurez besoin de la fonction session_set_save_handler() pour paramétrer vos propres fonctions de stockage. Depuis PHP 5.4.0, vous pouvez créer des gestionnaires de session en utilisant l'interface SessionHandlerInterface ou en étendant les gestionnaires internes de PHP en héritant de la classe SessionHandler.

Les fonctions de rappel précisées dans session_set_save_handler() sont des méthodes appelées par PHP pendant le cycle de vie de la session: open, read, write et close ainsi que les fonctions de ménage destroy pour supprimer une session et gc pour une collecte périodique des gabarits.

Ainsi, PHP a toujours besoin d'un gestionnaire de sessions. Par défaut il s'agit du gestionnaire interne 'files'. Un gestionnaire personnalisé peut être indiqué au moyen de session_set_save_handler(). D'autres gestionnaires alternatifs peuvent être proposés par des extensions PHP, comme sqlite, memcache et memcached et peuvent être utilisés via session.save_handler.

Lorsque la session démarre, PHP appelera en interne la fonction open du gestionnaire, suivie de read qui doit alors retourner une chaine encodée exactement comme elle a été passée lors du stockage. Une fois que la fonction de rappel de read a retourné sa chaine, PHP va alors la décoder et peupler la super-globale $_SESSION en conséquence.

Lorsque PHP se termine, (ou lorsque session_write_close() est appelée), il va en interne encoder le contenu de $_SESSION et le passer avec l'ID de session à la fonction write. Après write, PHP invoquera close.

Lorsqu'une session est détruite, PHP appelera destroy avec l'ID de session.

PHP appelera la fonction de rappel gc de temps en temps pour nettoyer les sessions expirées en fonction de leur temps de vie maximum. Cet appel devrait mener à la destruction des enregistrements dans le support de stockage qui n'ont été accédés depuis $lifetime.

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-session.customhandler.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut