Cours sur les sessions
1. Récupérez [Link] sur Moodle et copier le dans www/html (ou www/htdocs pour les PC
sous xampp, ou www pour les pc sous wamp ) dans un sous dossier session par exemple
Démarrez votre serveur web
Vous obtenez en tapant l’URL suivante dans votre navigateur ceci :
Adaptez bien évidemment l’URL à votre configuration
Créez un fichier [Link] en rajoutant les commandes d’ouverture de session et d’affichage des
différentes données de la session.
Je retiens :
Une session permet de stocker des variables de session. Ces variables peuvent ainsi être utilisées
sur d’autres pages php.
Pour ouvrir une session il faut écrire
< ?php
Session_start()
?>
Tout au début du fichier php
La fonction session_start() permet d'ouvrir une nouvelle session ou de ré-ouvrir une session
initialisée dans une page précédente.
Je retiens :
le serveur crée "chez lui" (session_save_path()) un fichier (session_name()) dans lequel il
écrira les variables et leurs valeurs. La session est définie par un identifiant (session_id())
qui est unique et aléatoire, c'est la variable cachée qui est transmise de page en page de
manière transparente .
La session est conservée sur le serveur tant qu'elle n'a pas reçu un ordre de destruction ou
bien que le client n’ait pas fermé son navigateur : elle expire alors au bout d'un certain
temps.
Exécutez l’URL : localhost/session/[Link]
Le SSID est le numéro unique de votre session créé sur le serveur web
Nom contient le nom du fichier qui contient vos variables de session
Et le chemin où se trouve votre fichier (vous pouvez aller voir, vous y trouverez certainement
d’autres fichiers session créés par d’autres sites)
2. Créez le fichier [Link] dans www/html/session ou www/session
On y voit le démarrage de la session (session_start) et la création d’une variable de session
$_SESSION[‘login’]
Testez
Je retiens :
Une fois la session démarrée, on peut y stocker des données dans des variables.
• Pour déclarer une variable de session (ici vide), il suffit d'exécuter :
$_SESSION['login'] = '';
• Pour créer une variable de session, il faut utiliser la variable super globale
(toujours écrite en majuscule) $_SESSION qui est un tableau associatif. Nous créons ainsi
une variable login qui a pour valeur $login
<?php $_SESSION['login'] = $login ; ?>
• Pour savoir si la variable de session existe :
<?php if(isset($_SESSION[‘login'])) echo 'La variable "login" existe'; ?>
• Utiliser une variable de session : <?php if(isset($_SESSION['login']))
echo 'La variable "login" existe et vaut: ' . $_SESSION['login']; ?>
3. Chercher [Link]
Aide : vous devez ajouter une variable de session compteur qui augmentera à chaque nouvelle visite
sur le site
Vous devez obtenir
4. Maintenant on va passer les informations à une autre page
Créer [Link] à partir de [Link] en rajoutant la ligne suivante juste avant </body>
<a href="[Link]">Lien vers ma seconde page</a><br />
Testez l’url
Créez la seconde page, c’est-à-dire [Link] dans votre dossier www/html/session (ou
www/htdocs/session)
Je retiens : le passage d’une page à une autre
La technique est simple : chaque utilisateur ayant besoin des sessions se voit attribuer un
identifiant unique appelé ID de session.
L'identifiant permet au client et au serveur d'être en relation : le serveur sait, grâce à
l'identifiant, qui est le client et peut stocker des informations le concernant.
On remarque qu’il y a un session_start() qui est OBLIGATOIRE sur chaque page où l’on veut créer ou
récupérer des variables de session
Testez
Je retiens :
La fin d'une session consiste en la destruction du tableau $_SESSION et en la suppression de
l'enregistrement des informations de session sur le serveur.
La fonction session_destroy( ) suffit pour détruire la session.
Cependant, même une fois que la session est détruite, le tableau $_SESSION est conservé tant que
le code PHP de la page en cours n'est pas terminé.
Ainsi, il vaut mieux, juste après la destruction de la session, supprimer le tableau $_SESSION :
unset($_SESSION) ;
Il est également possible de ré-initialiser le tableau $_SESSION :
$_SESSION = array();
Je retiens :
Vous avez probablement remarqué que les arrays $_GET et $_POST sont des variables un
peu particulières : leur nom est écrit en majuscules et commence par un underscore (le
trait de soulignement), mais surtout ces variables sont générées automatiquement par
PHP. Ce sont ce qu'on appelle des variables superglobales
Pour afficher le contenu d'une superglobale et voir ce qu'elle contient, le plus simple est
d'utiliser la fonction print_r, puisqu'il s'agit d'un array.
Exemple : <?php print_r($_GET); ?>
$_SESSION et $_COOKIE sont aussi des variables superglobales.