Maison  >  Article  >  développement back-end  >  Traitement de session en PHP (explication détaillée du code)

Traitement de session en PHP (explication détaillée du code)

藏色散人
藏色散人avant
2020-01-25 11:59:313170parcourir

Traitement de session en PHP (explication détaillée du code)

La gestion de session est un concept très important en PHP, qui permet aux informations utilisateur de rester inchangées sur toutes les pages d'un site Web ou d'une application. L'article suivant vous apprendra les connaissances de base du traitement de session en PHP. J'espère qu'il vous sera utile.

Qu'est-ce qu'une session en PHP ?

Une session est un mécanisme permettant de conserver des informations sur différentes pages Web afin d'identifier les utilisateurs lorsqu'ils parcourent un site Web ou une application.

Tout le monde doit se poser cette question : Pourquoi le site Web a-t-il besoin de sessions ? Avant d’aborder cette question, nous devons revenir en arrière et examiner le fonctionnement du protocole HTTP.

Le protocole HTTP est un protocole sans état, ce qui signifie que le serveur ne peut pas se souvenir d'un utilisateur spécifique entre les requêtes. Par exemple, lorsque vous visitez une page Web, le serveur est uniquement responsable de servir le contenu de la page demandée. Ainsi, lorsque vous visitez d’autres pages du même site Web, le serveur Web interprète chaque requête individuellement comme si elles n’avaient rien à voir les unes avec les autres. Le serveur n'a aucun moyen de savoir que chaque demande provient du même utilisateur.

La figure suivante décrit brièvement le protocole HTTP.

Traitement de session en PHP (explication détaillée du code)

Dans ce processus, si vous souhaitez afficher les informations d'un utilisateur spécifique, vous devez authentifier l'utilisateur dans chaque demande. Imaginez si à chaque fois que vous faites une demande, vous devez saisir votre nom d'utilisateur et votre mot de passe sur la page pour vous authentifier, c'est trop fastidieux et pas pratique du tout. Cependant, la séance s'avère utile à ce moment-là.

Une session permet de maintenir l'état en permettant aux utilisateurs de partager des informations sur différentes pages d'un même site ou d'une seule application. Cela permet au serveur de savoir que toutes les demandes proviennent du même utilisateur, permettant au site d'afficher des informations et des préférences spécifiques à l'utilisateur.

Le schéma ci-dessous décrit comment le protocole HTTP est utilisé avec les sessions.

Traitement de session en PHP (explication détaillée du code)

Comment PHP gère-t-il les sessions ?

1. Démarrez la session

Chaque fois que vous souhaitez traiter des variables de session, vous devez vous assurer que la session a été démarrée. Il existe plusieurs façons de démarrer une session en PHP.

1), utilisez la fonction session_start

Il s'agit de la méthode la plus courante, dans laquelle la session est démarrée par la fonction session_start.

Traitement de session en PHP (explication détaillée du code)

Il est important de noter que la fonction session_start doit être appelée au début du script avant qu'une sortie ne soit envoyée au navigateur. Sinon, vous rencontrerez la fameuse erreur Les en-têtes sont déjà envoyés.

2), Démarrer automatiquement la session

Si vous devez utiliser la session tout au long de l'application, vous pouvez également choisir de démarrer automatiquement la session sans utiliser la fonction session_start.

Il y a une option de configuration session.auto_start dans le fichier php.ini qui nous permet de démarrer automatiquement une session pour chaque requête. Par défaut, il est défini sur 0, nous pouvons le définir sur 1 pour activer la fonction de démarrage automatique.

Traitement de session en PHP (explication détaillée du code)

2. Obtenez l'ID de session

Le serveur crée un identifiant unique pour chaque nouvelle session. Si vous souhaitez obtenir l'ID de session, vous pouvez utiliser la fonction session_id comme indiqué dans l'extrait suivant.

Traitement de session en PHP (explication détaillée du code)

Cela devrait vous donner l'ID de session actuelle. La fonction session_id est intéressante car elle peut également prendre un paramètre : un identifiant de session. Si vous souhaitez remplacer l'ID de session généré par le système par le vôtre, vous pouvez le fournir au premier paramètre de la fonction session_id.

Traitement de session en PHP (explication détaillée du code)

Il est important de noter que lorsque vous souhaitez démarrer une session avec un identifiant de session personnalisé, la fonction session_id doit être appelée avant session_start.

3. Créer des variables de session

Une fois la session démarrée, $_SESSION initialisera le tableau super global avec les informations de session correspondantes. Par défaut, il est initialisé avec un tableau vide, vous pouvez utiliser des paires clé-valeur pour stocker plus d'informations.

Voyons comment initialiser les variables de session à travers des exemples de code.

Traitement de session en PHP (explication détaillée du code)

Comme indiqué ci-dessus, nous utilisons la fonction session_start pour démarrer une session au début du script ; après cela, nous initialisons plusieurs variables de session ; enfin, nous utilisons la superglobale $_SESSION pour accéder à ces variables.

Lorsque vous utilisez le superglobal $_SESSION pour stocker des données dans une session, elles sont finalement stockées dans le fichier de session correspondant sur le serveur qui est créé au démarrage de la session. De cette façon, les données de session sont partagées entre plusieurs requêtes.

Comme nous en avons discuté, les informations de session sont partagées entre les requêtes, de sorte que les variables de session initialisées sur une page seront également accessibles depuis d'autres pages jusqu'à l'expiration de la session. Normalement, la session expire à la fermeture du navigateur.

4. Modifier et supprimer des variables de session

Nous pouvons modifier ou supprimer des variables de session précédemment créées dans l'application, tout comme nous modifions des variables PHP classiques.

Prenons un exemple pour voir comment modifier les variables de session.

Traitement de session en PHP (explication détaillée du code)

Dans le script ci-dessus, nous vérifions d'abord si la variable $_session['count'] est définie. S'il n'est pas défini, nous le mettrons à 1, sinon nous l'incrémenterons de 1. Ainsi, si vous actualisez cette page plusieurs fois, vous pourrez voir le compteur s'incrémenter de un à chaque fois !

En revanche, si vous souhaitez supprimer une variable de session, vous pouvez utiliser la fonction unset, comme indiqué dans l'extrait suivant :

Traitement de session en PHP (explication détaillée du code)

De cette façon, nous ne pouvons plus accéder à la variable $_SESSION['logged_in_user_id']. Parce qu'il a été supprimé par la fonction unset.

5. Détruisez la session

Ci-dessus, nous savons que nous pouvons utiliser la fonction unset pour supprimer des variables de session spécifiques, puis si nous voulons supprimer toutes les données liées à la session ; tout de suite, nous Que faire ?

C'est en fait très simple, on peut utiliser la fonction session_destroy.

Voyons comment fonctionne la fonction session_destroy.

Traitement de session en PHP (explication détaillée du code)

Description : La fonction session_destroy supprime tout le contenu stocké dans la session en cours. Par conséquent, lorsque les données de session stockées sur le disque sont supprimées par la fonction session_destroy, nous verrons une variable de session vide des requêtes suivantes.

Remarque : Habituellement, la fonction session_destroy est utilisée lorsque l'utilisateur se déconnecte

Pour plus de connaissances PHP, veuillez visiter le tutoriel php !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer