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.
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 :
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é :
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 :
Prenons un exemple très simple, nous avons un tableau associatif comme suit :
Pour récupérer le pseudo depuis ma variable de session, il faut procéder de la façon suivante :
Regardons avec un autre exemple. On a une variable qui contient seulement une (1) valeur :
On créer une session pour stocker notre valeur :
Et pour récupérer cette même valeur depuis notre session :
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.
Exemple de code complet de la page logout.php :
Ici, on détruit toutes les sessions.
Ici, on supprime seulement la session user, le reste sera toujours actif.
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