Maison >développement back-end >tutoriel php >Comment comprendre le mécanisme de fonctionnement de la session PHP
Le mécanisme d'exécution de la session php est que le client transmet l'identifiant de session au serveur, et le serveur trouve ensuite le fichier correspondant en fonction de l'identifiant de session et le désérialise pour obtenir la valeur de session, et puis le sérialise lors de la sauvegarde, puis écrit
Le point de connaissance que je vais partager aujourd'hui est le mécanisme d'exécution de session en PHP. Il n'est pas étranger aux développeurs familiers avec PHP, mais il n'est pas très compréhensible pour ceux-là. qui viennent tout juste de commencer. Ensuite, dans l'article, je présenterai en détail le mécanisme de fonctionnement de session en PHP, qui a un certain effet de référence, j'espère qu'il sera utile à tout le monde
[Cours recommandé : Tutoriel PHP]
Signification du mécanisme de fonctionnement de session PHP :
Le mécanisme de fonctionnement de session PHP est que le client utilisera l'identifiant de session. Transmis au serveur, le serveur trouve le fichier correspondant en fonction de l'identifiant de session. Lors de la lecture, il désérialise le contenu du fichier pour obtenir la valeur de session. Lors de l'enregistrement, il est d'abord sérialisé puis écrit.Classification des mécanismes de session PHP
Il existe deux mécanismes de session en PHP, à savoir le mécanisme par défaut et le mécanisme de traitement de session défini par l'utilisateur.Le mécanisme par défaut
configuration php.ini :
session.save_handler = filesutilise des fichiers disque pour implémenter des sessions PHP, qui Il se compose des parties suivantes :
session_start()
session_start() est le début du mécanisme de session, qui a une certaine probabilité de démarrer le garbage collection. Cette probabilité est déterminée en fonction de la configuration de php.ini, car dans certains systèmes session.gc_probability = 0, c'est-à-dire que la probabilité est 0, alors il n'y a pas de garbage collectionAttribuer une valeur à $_session
L'ajout d'une nouvelle valeur ne sera conservé en mémoire qu'à la fin de l'exécution du script, écrivez la valeur de $_session dans le dossier spécifié par session_id, puis fermez les ressources associées. A ce stade, il est possible d'effectuer des opérations pour modifier le session_id, comme détruire un ancien session_id et générer un nouveau session_id. Ceci est généralement utilisé dans les opérations de session personnaliséesExemple :
if (isset($_COOKIE[session_name()])) { setcookie(session_name(),'',time() -42000,'/');//旧session cookie过期 } session_regenerate_id();//这一步会生成新的session_id //session_id()返回的是新的值
Opération de session d'écriture
Détruire la session
Les cookies envoyés par session sont généralement des cookies instantanés, qui sont stockés en mémoire et expireront à la fermeture du navigateur, mais si vous souhaitez simplement vous déconnecter au lieu de fermer le navigateur, vous devez alors détruire la session dans le code. Il existe de nombreuses méthodes. Exemple :1. setcookie(session_name(),session_id(),time() -8000000,..);//退出登录前执行 2. usset($_SESSION);//这会删除所有的$_SESSION数据,刷新后,有COOKIE传过来,但是没有数据。 3. session_destroy();//这个作用更彻底,删除$_SESSION 删除session文件,和session_id
Mécanisme de traitement de session défini par l'utilisateur
Configuration php.ini
session.save_handler = userLe mécanisme de traitement défini par l'utilisateur peut être divisé en parties suivantes
session_start()
Exécutez l'instruction open($save_path,$session_name) pour ouvrir le handle d'opération de sessionExécutez read($id) pour en lire les donnéesRemarque : $save_path est dans ce cas, renvoie true directement
L'exécution du script se termine
Exécuter l'instruction write($id, $sess_data)Détruire la session
Il est à noter que si l'utilisateur doit détruire la session, il doit d'abord exécuter destroy puis exécuter l'étape 2 Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il vous sera utile.Sujet d'apprentissage du site Web chinois php : session php (comprenant des images, des vidéos, des cas)
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!