Maison  >  Article  >  développement back-end  >  Comment comprendre le mécanisme de fonctionnement de la session PHP

Comment comprendre le mécanisme de fonctionnement de la session PHP

清浅
清浅original
2019-02-14 17:42:144002parcourir

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

Comment comprendre le mécanisme de fonctionnement de la session PHP

[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 = files
utilise 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 collection

Attribuer 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ées

Exemple  :

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

À À la fin du script, l'opération d'écriture de session sera effectuée et la valeur dans $_session sera écrite dans le fichier nommé session_id. Il existe peut-être déjà et un nouveau fichier devra peut-être être créé.

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

Comment comprendre le mécanisme de fonctionnement de la session PHP

Mécanisme de traitement de session défini par l'utilisateur

Configuration php.ini

session.save_handler = user
Le 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 session

Exécutez read($id) pour en lire les données

Remarque : $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

Comment comprendre le mécanisme de fonctionnement de la session PHP

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!

Déclaration:
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