Directives de session PHP
Toutes les directives liées à la session peuvent être définies en utilisant le php.ini déposer. Certaines directives PHP liées à la session sont mentionnées.
Directive de session | but |
---|---|
session.sauvegarder | La valeur de la directive peut être des dossiers ou MM ou sqlite ou utilisateur. Le MM est utilisé pour gérer les données de session en utilisant la mémoire. Le sqlite est utilisé pour gérer les données à l'aide de la base de données SQLite. Le utilisateur est utilisé pour gérer les données en utilisant la fonction définie par l'utilisateur. |
session_auto_start | La valeur de cette directive sera Sur pour démarrer automatiquement la session; Sinon, ce sera Désactivé. |
session.nom | Il est utilisé pour définir le nom de la session et le nom de session par défaut est PhpSesSID. |
session.Enregistrer le chemin | Il est utilisé pour définir le chemin où les informations de session seront stockées. La valeur par défaut de cette directive est des dossiers. |
session.hash_function | Il est utilisé pour générer un identifiant de session hachée. 0 est utilisé Md5 algorithme et 1 est utilisé pour le Sha algorithme. |
session.cache_expire | Il est utilisé pour définir le temps d'expiration de la session. |
session.use_cookies | Il est utilisé pour stocker l'identifiant de la session en utilisant le cookie. 1 est utilisé pour utiliser des cookies et 0 est empressé pour ne pas utiliser le cookie. |
session.use_only_cookies | Il est utilisé pour utiliser le cookie uniquement pour stocker l'identifiant de session. |
session.cookie_secure | Il est utilisé pour définir si le cookie utilise la connexion sécurisée ou non. Il est activé en utilisant le ON et les désactivés en utilisant le Désactivé valeurs. |
session.cookie_lifetime | Il est utilisé pour régler la durée de vie du cookie. |
Vous pouvez visiter le lien suivant pour en savoir plus sur les directives de session.
https: // www.php.net / manuel / en / ini.liste.php
Fonctions de session PHP
PHP a de nombreuses fonctions intégrées pour les tâches de gestion des sessions. Certaines fonctions de traitement des sessions utiles sont mentionnées ci-dessous.
Fonction de session | but |
---|---|
session_start () | Il est utilisé pour démarrer une nouvelle session ou redémarrer la session précédente. |
ID de session() | Il est utilisé pour définir ou obtenir ou définir et obtenir l'ID de session. |
session_create_id () | Il est utilisé pour créer un nouvel ID de session. |
session_name () | Il est utilisé pour définir ou obtenir ou définir et obtenir le nom de session actuel. |
session_status () | Il est utilisé pour obtenir des informations sur l'état actuel de la session. |
session_reset () | Il est utilisé pour réinitialiser le tableau de session. |
session_unset () | Il est utilisé pour indéfinir toutes les variables de session. |
session_destroy () | Il est utilisé pour détruire toutes les données de session enregistrées. |
session_encode () | Il est utilisé pour coder les données de session actuelles. |
session_decode () | Il est utilisé pour décoder les données de session actuelles codées. |
session_commit () | Il est utilisé pour rédiger des données de session et fermer la session. |
session_abort () | Il est utilisé pour supprimer les modifications du tableau de session et fermer la session. |
session_generate_id () | Il est utilisé pour générer une nouvelle session pour la session existante. |
session_cache_limiter () | Il est utilisé pour définir ou obtenir le limiteur de cache de la session en cours. |
Session_cache_expire () | Il est utilisé pour définir ou faire expirer le cache de la session en cours. |
Vous pouvez visiter le lien suivant pour en savoir plus sur les fonctions de session intégrées de PHP: https: // www.php.net / manuel / en / ref.session.php.
Variable de session PHP
PHP utilise un tableau associatif nommé $ _Session pour stocker les données de session. C'est une variable «superglobale» qui peut être accessible de n'importe où dans le script. Les valeurs sont initialisées dans cette variable après avoir créé une session et cette variable devient non set après avoir détruit la session.
Gestion des sessions
Le traitement de session peut être effectué par le serveur Web à l'aide de la base de données ou du fichier. Le traitement de la session peut être effectué en utilisant le navigateur de l'utilisateur si le navigateur prend en charge les cookies. Mais si les cookies du navigateur sont désactivés par l'utilisateur, alors de cette façon ne peut pas être utilisé pour la manipulation de session. Donc, l'utilisation du serveur Web est le meilleur moyen de gérer les séances. Les étapes pour la gestion des sessions sont mentionnées ci-dessous.
Créer et imprimer l'ID de session
PHP a deux fonctions intégrées pour créer ou redémarrer une session précédente et celles mentionnées plus tôt dans ce tutoriel. L'utilisation session_start () La fonction a été affichée ici qui est utilisée pour générer une nouvelle session ou générer une session précédente. Il vérifie la session pour le visiteur et crée une nouvelle session si le visiteur visite la page la première fois. Créez un fichier PHP avec le script suivant qui crée une nouvelle session pour le visiteur et génère un ID de session unique qui a été imprimé par une autre fonction intégrée nommée ID de session().
// Démarrer une nouvelle sessionSortir
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus à partir du navigateur Web. L'ID de session unique a été imprimé ici et cet identifiant restera inchangé à chaque fois que la page est rafraîchie. Si le navigateur est fermé et rouvert à nouveau pour exécuter ce script, un nouvel ID de session sera imprimé.
Stocker et imprimer les données de session
La variable $ _Session doit être initialisée après avoir créé l'ID de session pour stocker les données de session. Créez un fichier PHP avec le script suivant qui stocke la valeur de la clé «Nom» de la variable $ _Session [] après avoir démarré une nouvelle session. Le isset () La fonction a été utilisée dans le script pour vérifier la variable $ _Session ['name'] est définie ou non. Si la valeur n'est pas définie pour cette variable, une valeur sera définie pour cette variable. Si la valeur a été définie pour cette variable, la valeur de cette variable sera imprimée avec le formatage.
// Démarrer une nouvelle sessionUne nouvelle session a été lancée pour l'utilisateur.
"Content de te revoir, ' . $ _Session ["nom"] . '.
';;Sortir
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus la première fois. Selon la sortie, un nouvel ID de session a été généré pour le visiteur car l'utilisateur visite la page pour la première fois. La variable $ _Session ['name'] a été initialisée par une valeur de chaîne et un message a été imprimé pour la nouvelle session.
La sortie suivante apparaîtra si l'utilisateur visite la page la prochaine fois. La valeur de la variable $ _Session ['name'] a été imprimée ici. Le message suivant sera affiché à chaque fois que la session est détruite ou que les données de session soient supprimées ou que le navigateur soit rouvert.
Créer une session après l'authentification de l'utilisateur
Normalement, la session est créée pour l'utilisateur enregistré du site Web après avoir authentifié l'utilisateur en fonction des données valides pour éviter un accès non autorisé à l'utilisateur pour les données sensibles. Le traitement de la session est très important pour que le site Web du commerce électronique suive l'activité de l'utilisateur. Les données liées à l'authentification de l'utilisateur sont stockées dans le serveur de base de données comme MySQL, SQLite, SQL Server, PostgreSQL, etc. Les informations de l'utilisateur pour l'authentification ont été stockées dans le texte ici pour simplifier. Créer un fichier texte nommé utilisateurs.SMS avec le contenu suivant et le fichier contient le nom, le courrier électronique, le nom d'utilisateur et le mot de passe de trois utilisateurs. Chaque champ est séparé par une virgule (,) dans le fichier. L'authentification sera vérifiée en utilisant le nom d'utilisateur ou l'e-mail et le mot de passe.
utilisateurs.SMS
nom, e-mail, nom d'utilisateur, mot de passeCréer un fichier html nommé Formulaire de connexion.html avec le script suivant qui affichera un formulaire de connexion avec deux champs de texte et un bouton de soumission. Le nom d'utilisateur ou l'e-mail sera pris dans le premier champ de texte et le mot de passe sera pris dans le deuxième champ de texte. Lorsque le bouton Soumettre appuyera, la page sera redirigea vers session3.php qui sera créé plus tard.
Formulaire de connexion.html
Créez un fichier PHP avec le script suivant qui authentifie les informations de connexion en fonction des données du utilisateurs.SMS fichier et initialiser les données de session après avoir authentifié l'utilisateur. Le $ connexion La variable a été utilisée pour tracer si les informations de connexion soumises sont valides ou non valides et que la valeur initiale de cette variable est FAUX. La première fonction isset () sera utilisée pour vérifier si la variable $ _Session ['name'] est définie ou non. Si cette variable n'est pas définie, la deuxième fonction ISSET () sera utilisée pour vérifier la valeur de la variable $ _Post ['' '' '' '']. Si les valeurs de cette variable sont définies, les valeurs de formulaire soumises seront stockées en deux variables. Si les valeurs de ces variables sont non vides, la utilisateurs.SMS Le fichier sera ouvert à la lecture pour vérifier que les valeurs de formulaire soumises correspondent aux valeurs de l'e-mail ou du nom d'utilisateur et du mot de passe de tout utilisateur du fichier texte. Le exploser() La fonction a été utilisée pour diviser chaque ligne du fichier en fonction de la virgule (,) et stocker les valeurs divisées en quatre variables. Le garniture() La fonction a été utilisée pour éliminer l'espace supplémentaire des deux côtés de la variable. Si une entrée correspondante est trouvée, la variable $ _Session ['name'] sera initialisée par le nom de l'utilisateur correspondant qui a été récupéré à partir du fichier et d'un message de réussite "Vous êtes connecté avec succès."Sera imprimé. Si aucune entrée correspondante n'est trouvée, le formulaire de connexion apparaît à nouveau. Si la page est revisitée après la création de la session, un message de bienvenue sera imprimé avec la valeur de $ _Session ['name'].
session3.php
// Définissez la variable pour vérifier la connexion valideVous êtes connecté avec succès.
"Content de te revoir, ". $ _Session ['name']."
"Sortir
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus la première fois. L'utilisateur doit taper le nom d'utilisateur ou l'e-mail et le mot de passe valides pour l'authentification.
L'adresse e-mail et le mot de passe ont été fournis dans le formulaire de connexion suivant. Ces valeurs seront adaptées à l'adresse e-mail et au mot de passe de chaque utilisateur du fichier.
La sortie suivante apparaîtra si l'utilisateur appuye sur le bouton Soumettre après avoir fourni l'adresse e-mail et le mot de passe valides. La même sortie apparaîtra si l'utilisateur fournit un nom d'utilisateur valide à la place de l'adresse e-mail pour l'authentification. Le formulaire de connexion apparaît à nouveau si un nom d'utilisateur ou un e-mail ou un mot de passe non valide est fourni par l'utilisateur.
Si l'utilisateur recharge à nouveau la même page après avoir réussi à se connecter, la sortie suivante apparaîtra. La valeur de la variable $ _Session ['name'] a été imprimée ici avec le message de bienvenue. Cette sortie restera inchangée jusqu'à l'expiration de la session pour l'utilisateur ou le navigateur est rouvert.
Modifier les données de session
Les données de session peuvent être modifiées après l'initialisation de la variable de session. Créez un fichier PHP avec le script suivant pour connaître la façon de modifier la variable de session après avoir initialisé la variable $ _Session. La fonction isset () a été utilisée dans le script pour vérifier si la variable $ _Session ['Visit'] est définie ou non. Si la variable $ _Session ['Visit'] n'est pas définie, cette variable sera initialisée à 1. Si la page actualise ou rechargeable à nouveau, la valeur de cette variable sera incrémentée de 1 pour chaque rafraîchissement. La valeur actuelle de cette variable sera imprimée chaque fois que la page est chargée.
// Démarrer la sessionLa page est visitée pour ". $ _SESSION ['VISITE']. "Les temps
"Sortir
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus pour la première fois. La valeur de la $ _Session ['visiter'] est 1 ici car lorsque la page est chargée pour la première fois, cette variable est initialisée à 1.
La sortie suivante apparaîtra si la page est chargée 3 fois. La valeur de la $ _Session ['Visit'] a été incrémentée de 1 chaque fois que la page recharge.
Supprimer les données de session
Les données de session peuvent être supprimées en utilisant unset () fonction ou le session_unset () fonction de php. Créez un fichier PHP avec le script suivant qui utilise le unset () fonction pour supprimer les données de session. La variable $ _Session ['' Username '] a été initialisée avec une valeur de chaîne après le démarrage de la session. Ensuite, la valeur de cette variable a été imprimée avant et après avoir exécuté la fonction unset () pour supprimer les données de session de la variable $ _Session ['username'].
// Démarrer la sessionSortir
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. La valeur de la $ _Session [«nom d'utilisateur»] a été imprimée avant d'exécuter le unset () La fonction et la variable $ _session ['nom d'utilisateur'] sont devenues vides après l'exécution unset () fonction.
Détruire la session
Les informations de la session peuvent être supprimées en dénouant les valeurs de la variable $ _Session qui a été montrée dans l'exemple précédent. PHP a une fonction intégrée nommée session_destroy () Pour supprimer complètement toutes les informations liées à la session. Créez un fichier PHP avec le script suivant qui montre l'utilisation du session_destroy () fonction. Un formulaire avec un bouton de soumission a été utilisé dans le script pour détruire la session. Après avoir commencé une session, la fonction ISSet () a été utilisée pour vérifier le «Détruire«Le bouton est appuyé et que l'ID de session n'est pas vide. La session en cours sera détruite en appelant le session_destroy () fonction si l'ID de session existe si le «Détruire«Le bouton est appuyé par l'utilisateur. Si la page est visitée pour la première fois et le ««Détruire"Le bouton n'est pas enfoncé, puis les informations de session seront stockées dans la variable $ _Session ['name']. Si la page est à nouveau visitée après avoir stocké les informations de session, mais le «Détruire"Le bouton n'est pas appuyé, puis le message de bienvenue sera imprimé.
// Démarrer une nouvelle sessionUne nouvelle session a été lancée pour l'utilisateur.
"Content de te revoir, ' . $ _Session ["nom"] . '.
';;Sortir
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus pour la première fois. Si l'utilisateur clique sur le "Détruire”Bouton alors la session sera complètement détruite et une page vierge apparaîtra.
Exemple 5: Codage et décodage des données de session
Les données de session peuvent être codées pour générer une valeur de chaîne en sérialisant les données et les données de session codées peuvent être converties en tableau en désérialisant les données. Créez un fichier PHP avec le script suivant qui code les données de session en utilisant le session_encode () fonction et décode les données de session codées en utilisant le session_decode () fonction. Selon le script suivant, les variables $ _Session [«nom»] et les variables $ _Session [«e-mail»] seront initialisées avec deux valeurs après le début de la session. Les valeurs de ces variables ont été codées en utilisant le session_encode () fonction et imprimé plus tard. Le session_unset () La fonction a été utilisée pour un défaut de la variable $ _Session. Ensuite, les données de chaîne codées ont été converties en tableau en utilisant le session_decode () fonction.
// Démarrer une nouvelle sessionUne nouvelle session est générée.
"Accueillir, ' . $ _Session ["nom"] . '.
';;Sortir
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. Après encodage, les données de session sérialisées ont été imprimées dans la sortie. Selon la sortie, le tuyau (|) et le côlon (:) Les symboles ont été intégrés avec les données de session pour créer la chaîne codée et la longueur de chaque valeur de chaîne a également été incluse dans la chaîne codée. Ensuite, la chaîne codée a été décodée et la valeur de la variable $ _Session [«nom»] a été imprimée.
Conclusion
Le traitement de session est une caractéristique très importante de toute application Web. PHP a de nombreuses directives de gestion des sessions et des fonctions de session intégrées pour gérer les tâches liées à la session. Certaines utilisations des fonctions de session couramment utilisées ont été présentées dans ce tutoriel en utilisant des scripts PHP. La tâche de certaines fonctions de session peut être effectuée en utilisant les directives de session particulières. Par exemple, si le session_auto_start La directive est définie sur Sur Ensuite, il démarrera automatiquement la session sans utiliser le session_start () fonction. L'utilisation d'une table de base de données est un moyen efficace de stocker les données de session qui ne sont pas couvertes dans ce tutoriel. Mais le but de la session pour l'application Web et la façon d'implémenter la fonctionnalité de gestion de la session à l'aide du script PHP ont été affichés dans ce tutoriel pour aider les nouveaux utilisateurs de PHP à ajouter cette fonctionnalité dans leur application.