20 juin 2024

Les sessions

Dans ce cours, on va aborder les sessions sous PHP. Les sessions ont un rôle très important pour le stockage de données et ainsi avoir différents états (connexion, panier, paramètres utilisateur). Regardons ça de plus près.

La variable de session

Avant de faire quoi que ce soit, il faut mettre en haut de page (premier) juste après la balise PHP, le code :

<?php
session_start();
?>


Cela permet d'initialiser la variable $_SESSION et ainsi stocker les différentes sessions activent.

Pour définir une session, il faut l'initialiser avec la variable :

$_SESSION


Si on regarde cette variable quand elle est initiée, on aura en retour un tableau associatif (clé => valeur)

Et donc pour récupérer une valeur dans celui-ci, il faudra passer par le nom de la clé :

print $_SESSION["clé"]


Mais comme vous pouvez vous en douter, initier une session sur la variable générique n'est pas le plus adapté dans le cas où nous souhaiterions stocker différentes valeurs pour différentes utilisations.

Exemple : Session utilisateur et le panier.

Si on utilise la variable globale, à chaque nouvelles données, on écrase la précédente. Pour remédier à cela, il faut définir une clé au moment de l'entrée de nos valeurs :

$_SESSION["user"] = $informationUser


$_SESSION["panier"] = $informationPanier


Prenons un exemple très simple, nous avons un tableau associatif comme suit :

$informationUser = ["pseudo"=>"arkunis", "email"=>"[email protected]"];


Pour récupérer le pseudo depuis ma variable de session, il faut procéder de la façon suivante :

print $_SESSION["user"]["pseudo"]


Regardons avec un autre exemple. On a une variable qui contient seulement une (1) valeur :

$marqueVoiture = "Toyota";


On créer une session pour stocker notre valeur :

$_SESSION["voiture"] = $marqueVoiture;


Et pour récupérer cette même valeur depuis notre session :

print $_SESSION["voiture"];


Vu que l'on a qu'une seule valeur, pas besoin de spécifier une clé supplémentaire, ici appeler la session nous donnera la valeur de notre variable.

La suppression d'une session

Maintenant, que l'on sait comment initier une session, il faut savoir la supprimer ainsi que toutes les supprimer. Pour ce faire, il existe deux (2) options :

session_destroy(); // Va supprimer toutes les sessions


unset($_SESSION["user"]); // Va supprimer la session user


Exemple de code complet de la page logout.php :

# Premier cas

<?php
session_start();
session_destroy();
header("Location:index.php");
?>


Ici, on détruit toutes les sessions.

# Deuxième cas

<?php
session_start();
unset($_SESSION["user"]);
header("Location:index.php");
?>


Ici, on supprime seulement la session user, le reste sera toujours actif.

Mots clés:

php

Cours Du Dev

Recevez les dernières formations disponibles en vous inscrivant à la newsletter

Créé par arkunis