.. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- .. -*- coding: utf-8 -*- with BOM. ===================================== Session ===================================== Jusqu'à présent, nous avons utilisé des variables ou constantes accessibles uniquement sur la page courante. Il est parfois nécessaire de pouvoir stocker certaines informations pour les reprendre plus tard, sur une autre page du site par exemple. Les sessions sont le moyen de conserver des valeurs à travers les pages d'un site sans pour autant avoir un formulaire en GET ou POST en entrée. **Fonctionnement** ================== Pour que les sessions fonctionnent sur les pages d'un site, il faut obligatoirement démarrer les sessions (et ce, sur chaque page où les sessions seront utilisées.) Cette méthode doit être déclarée au début de chaque page (avant l'en-tête html). .. code-block:: php session_start(); // Démarrer le système de session Dès à présent, quand un visiteur arrivera sur votre site, une variable de session unique lui sera attribuée. Cette dernière est un numéro en hexadécimal très grand appelé "ID de session". PHP se charge de transmettre ce numéro de page en page en le stockant dans un cookie. **Création** ================== Maintenant que la session est démarrée, il est possible de créer autant de variables de session que nécessaire. Pour rappel, ce sont des variables qui vont pouvoir être utilisées sur n'importe quelles pages du site (pour autant que session_start() y figure). Pour créer une variable de session, une super-globale de type tableaux associatifs est utilisée. .. code-block:: php $_SESSION["isConnected"] = 1; // Créer la variable de session isConnected et affecte 1 $_SESSION["firstname"] = "Kara"; // Créer firstname et lui affecte un prénom **Accès aux variables** ======================= .. code-block:: php // Contrôler si une variable existe if(isset($_SESSION["isConnected"])) // Voir toutes les variables de session qui existent var_dump($_SESSION); // Afficher le contenu d'une variable de session echo $_SESSION["firstname"]; **Suppression** ================== Les variables de session se détruisent quand le visiteur part du site Internet. Mais il est difficile de savoir clairement quand le visiteur est parti. Va-t-il fermer le navigateur, seulement changer d'onglets ? Pour détruire les variables de session existantes, il existe deux solutions. Soit une fonction de déconnexion est créée, soit le timeout du serveur pour les sessions est utilisé. .. code-block:: php // Se déconnecter - supprime l'ensemble des variables de session session_destroy(); // Supprimer une variable de session en particulier unset($_SESSION["firstname"]); // Dans le fichier php.ini session.cookie_lifetime = 0 // 0 indique jusqu'à ce que le navigateur est redémarré