Remarque 017, fonction session_set_save_handler() en PHP

黄舟
Libérer: 2023-03-04 09:20:01
original
1614 Les gens l'ont consulté

Description de la fonction

La fonction session_set_save_handler est utilisée pour définir le stockage de session défini par l'utilisateur.

Si vous souhaitez utiliser des méthodes autres que le mécanisme de stockage de session intégré à PHP, vous pouvez utiliser cette fonction. Par exemple, vous pouvez personnaliser la fonction de stockage de session pour stocker les données de session dans une base de données.

Utilisation

bool session_set_save_handler ( appelable $open , appelable $close , appelable $read , appelable $write , appelable $destroy , appelable $gc [, appelable $create_sid ] )

À partir de la version PHP 5.4, vous pouvez directement utiliser des paramètres plus simples pour personnaliser les paramètres de stockage de session :

bool session_set_save_handler ( SessionHandlerInterface $sessionhandler [, bool $register_shutdown = true ] )

Description du paramètre

Ce paramètre a deux prototypes :

Le premier prototype (disponible pour la version PHP 5.4) est :

sessionhandler

implémente l'objet d'interface SessionHandlerInterface, vous pouvez personnalisez cet objet, ou vous pouvez utiliser le SessionHandler

register_shundown

officiellement fourni pour enregistrer la fonction session_write_close() en tant que fonction register_shutdown_function().

Le deuxième prototype est :

open(string $savePath, string $sessionName)

open La fonction de rappel est similaire au constructeur de la classe Elle sera ouverte. lorsque la session est ouverte, il est appelé. Il s'agit de la première fonction de rappel appelée après le démarrage d'une session automatiquement ou manuellement en appelant session_start(). Cette fonction de rappel renvoie vrai si l'opération réussit, sinon elle renvoie faux.

close()

la fonction de rappel close est similaire au destructeur d'une classe. Appelé après l’appel de la fonction de rappel d’écriture. Lorsque la fonction session_write_close() est appelée, la fonction de rappel close sera également appelée. Cette fonction de rappel renvoie vrai si l'opération réussit, sinon elle renvoie faux.

read(string $sessionId)

S'il y a des données dans la session, la fonction de rappel read doit renvoyer une chaîne qui encode (sérialise) les données de la session. S'il n'y a aucune donnée dans la session, la fonction de rappel read renvoie une chaîne vide.

Après avoir démarré la session automatiquement ou manuellement en appelant la fonction session_start(), PHP appelle en interne la fonction de rappel read pour obtenir les données de session. Avant d'appeler read, PHP appellera la fonction de rappel open.

Le format de chaîne sérialisée renvoyé par le rappel de lecture doit être exactement le même que le format lorsque la fonction de rappel d'écriture enregistre les données. PHP désérialisera automatiquement la chaîne renvoyée et remplira la super variable globale $_SESSION. Bien que les données ressemblent beaucoup à la fonction serialize(), il est important de se rappeler qu’elles sont différentes.

write(string $sessionId, string $data)

La fonction de rappel d'écriture sera appelée lorsque la session enregistre les données. Cette fonction de rappel reçoit l'ID de session en cours et la chaîne après sérialisation des données dans $_SESSION en tant que paramètres. Le processus de sérialisation des données de session est complété par PHP selon la valeur du paramètre session.serialize_handler.

Les données sérialisées seront associées à l'ID de session et enregistrées. Lors de l'appel de la fonction de rappel de lecture pour obtenir des données, les données renvoyées doivent être totalement cohérentes avec les données transmises à la fonction de rappel d'écriture.

PHP appellera cette fonction de rappel après l'exécution du script ou l'appel de la fonction session_write_close(). Notez qu'après avoir appelé cette fonction de rappel, PHP appellera la fonction de rappel close en interne.

Remarque :

PHP n'appellera pas la fonction de rappel d'écriture tant que le flux de sortie n'est pas écrit et fermé, donc les informations de débogage dans la fonction de rappel d'écriture ne seront pas affichées dans le navigateur. Si vous devez utiliser la sortie de débogage dans la fonction de rappel d'écriture, il est recommandé d'écrire la sortie de débogage dans un fichier.

destroy($sessionId)

Cette fonction de rappel sera appelée lorsque la fonction session_destroy() est appelée, ou que la fonction session_regenerate_id() est appelée et que le paramètre destroy est défini sur true. Cette fonction de rappel renvoie vrai si l'opération réussit, sinon elle renvoie faux.

gc($lifetime)

Afin de nettoyer les anciennes données de la session, PHP appellera la fonction de rappel du garbage collection de temps en temps. Le cycle d'appel est contrôlé par les paramètres session.gc_probability et session.gc_divisor. Le paramètre de durée de vie transmis à cette fonction de rappel est défini par session.gc_maxlifetime. Cette fonction de rappel renvoie vrai si l'opération réussit, sinon elle renvoie faux.

create_sid()

Fonction de rappel appelée lorsqu'un nouvel identifiant de session est requis. La fonction de rappel est appelée sans aucun paramètre transmis et sa valeur de retour doit être un ID de session valide au format chaîne.

Valeur de retour

Renvoie vrai en cas de succès ou renvoie faux en cas d'échec.

Ce qui précède est le contenu de la fonction session_set_save_handler() dans Note 017 PHP Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
php
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!