Tutoriel de session PHP

Tutoriel de session PHP
Lorsqu'un site Web de plusieurs pages est conçu, il n'est pas possible de stocker les informations d'état des pages sans utiliser la session. Lorsque l'utilisateur passe d'une page à une autre, il est essentiel de conserver les informations de la page précédente pour différents types de sites. Mais le protocole sans état HTTP n'est pas en mesure de faire cette tâche. L'une des façons de résoudre ce problème est d'utiliser la fonction de gestion de session PHP. Il est utilisé pour conserver toutes les informations de chaque visiteur telles que: lorsque l'utilisateur a commencé à visiter le site, quelles pages ont été visitées par l'utilisateur, quelles activités ont été effectuées par l'utilisateur sur chaque page, et lorsque l'utilisateur a fermé, le site, etc. La gestion des sessions est très importante pour le site Web basé sur le commerce électronique où l'utilisateur doit se déplacer vers différentes pages pour acheter des produits. De nombreuses directives de session PHP, fonctions intégrées et variables sont utilisées par le script PHP pour gérer la session de l'utilisateur. La façon de gérer la session d'un utilisateur en utilisant les directives de configuration PHP, la fonction de session et les variables de session s'est présentée dans ce tutoriel en utilisant plusieurs exemples.

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.

  • Le visiteur envoie la demande au serveur Web pour visiter une page.
  • Le serveur Web crée un identifiant de session pour le visiteur, stocke des données liées à la session pour le visiteur et envoie la page comme réponse pour le visiteur.
  • Le serveur Web enregistre les informations de session liées au visiteur dans un fichier texte sur le serveur pour suivre la session du visiteur sur chaque page visitée par le visiteur pendant la session.
  • Si le navigateur utilisé par le visiteur prend en charge les cookies, l'ID de session sera stocké par le cookie Phpessid pour suivre la session du visiteur sur chaque page visitée par le visiteur pendant la session.

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 session
session_start ();
// imprime l'ID de session
Echo "ID de session nouvellement généré:
".ID de session(). ""
?>

Sortir
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 session
session_start ();
si(!isset ($ _ session ['name']))

écho "

"
écho "

Une nouvelle session a été lancée pour l'utilisateur.

"
// Enregistrer les données de session
$ _Session ["name"] = "Fahmida Yesmin";

autre

écho "

"
// Lire les données de session
écho '

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 passe
Nipa Chowdhury, nipa @ gmail.com, NIPA35, POP890
Mehrab Hossain, Hossain @ Gmail.com, Hossainbd, 674523
Abbas Uddin, Abbas @ gmail.com, abbas90, hello765

Cré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



Gestion de session en utilisant PHP




Connexion

nom d'utilisateur ou email:


mot de passe:







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 valide
$ ligin = false;
// Démarrer une session
session_start ();
// Vérifiez si la session est générée ou non
si(!isset ($ _ session ['name']))

// Vérifiez que l'e-mail ou le nom d'utilisateur est défini ou non
if (isset ($ _ poster ['userEmail']))

// Stockez le nom d'utilisateur ou l'e-mail et le mot de passe après la coupe
$ user = Trim ($ _ post ['userEmail']);
$ mot de passe = TRIM ($ _ post ['mot de passe']);
// Vérifiez si les valeurs soumises sont vides ou non
if ($ utilisateur != "" && $ mot de passe != "")

// Lire le contenu des utilisateurs.fichier txt
$ userFile = fichier ("utilisateurs.SMS");
// Lire le fichier ligne par ligne
foreach ($ userfile as $ data)

// Lire les données du fichier en quatre variables après la séparation en fonction de la virgule (,)
list ($ name, $ e-mail, $ username, $ pwd) = explose (",", $ data);
// Coupez les valeurs de messagerie électronique, d'utilisateur et de mot de passe
$ email = TRIM ($ e-mail);
$ username = Trim ($ username);
$ PWD = TRIM ($ PWD);
// authentifie l'utilisateur en fonction du nom d'utilisateur ou de l'e-mail et du mot de passe
if (($ username == $ utilisateur || $ e-mail == $ utilisateur) && ($ pwd == $ mot de passe))

// Stocker les données de session pour l'utilisateur valide
$ _Session ['name'] = $ name;
écho "

Vous êtes connecté avec succès.

"
$ ligin = true;
casser;




// montre le formulaire de connexion
if ($ ligin == false) Inclure "Loginform.html ";

autre

// imprime le message de bienvenue pour l'utilisateur authentifié de retour
écho "

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 session
session_start ();
// Vérifiez si la variable de session est définie ou non définie
si (!isset ($ _ session ['visiter']))
// Initialiser la variable de session
$ _Session ['visiter'] = 1;
autre
// incrément la variable de session par 1
$ _Session ['visiter'] + = 1;
// imprime la valeur actuelle de la variable de session
écho "

La 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 session
session_start ();
// Définir la variable de session
$ _SESSION [«nom d'utilisateur»] = «Fahmidabd»;
Echo "Données de session après l'ensemble:
"
// imprime la variable de session après définir
Echo "Nom d'utilisateur:". $ _Session ['nom d'utilisateur']."
"
// Unparent la variable de session
unset ($ _ session ['nom d'utilisateur']);
Echo "Données de session après unset:
"
// Imprime la variable de session après un non set
Echo "Nom d'utilisateur:". $ _Session ['nom d'utilisateur'];
?>

Sortir
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 session
session_start ();
if (isset ($ _ post ['destre']) && session_id () != "")

// Détruiser la session
session_destroy ();

autre

si(!isset ($ _ session ['name']))

écho "

"
écho "

Une nouvelle session a été lancée pour l'utilisateur.

"
// Enregistrer les données de session
$ _Session ["name"] = "Fahmida Yesmin";

autre

écho "

"
// Lire les données de session
écho '

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 session
session_start ();
écho "

Une nouvelle session est générée.

"
// Enregistrer les données de session
$ _Session ["name"] = "Fahmida Yesmin";
$ _Session ["e-mail"] = "Fahmidabd @ gmail.com ";
Echo "Les données de session codées sont:
"
// Encoder les données de session
$ encodeddata = session_encode ();
Echo "Données de session codées:". $ encodéddata."

"
// non fini les données de session
session_unset ();
// décode les données de session
session_decode ($ encodéddata);
Echo "Données de session après le décodage:";
// Lire les données de session
écho '

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.