Séances PHP
Une session est un moyen de stocker des informations (dans des variables) à utiliser sur plusieurs pages.
Contrairement à un cookie, les informations ne sont pas stockées sur l'ordinateur de l'utilisateur.
Qu'est-ce qu'une session PHP ?
Lorsque vous travaillez avec une application, vous l'ouvrez, faites quelques modifications, puis vous la fermez. Cela ressemble beaucoup à une session. L'ordinateur sait qui vous êtes. Il sait quand vous démarrez l'application et quand vous la terminez. Mais sur Internet, il y a un problème : le serveur Web ne sait pas qui vous êtes ni ce que vous faites, car l'adresse HTTP ne conserve pas l'état.
Les variables de session résolvent ce problème en stockant les informations utilisateur à utiliser sur plusieurs pages (par exemple, nom d'utilisateur, couleur préférée, etc.). Par défaut, les variables de session durent jusqu'à ce que l'utilisateur ferme le navigateur.
Alors; Les variables de session contiennent des informations sur un seul utilisateur et sont disponibles pour toutes les pages d'une seule application.
Astuce : Si vous avez besoin d'un stockage permanent, vous pouvez stocker les données dans une base de données .
Démarrer une session PHP
Une session est démarrée avec la session_start()
fonction.
Les variables de session sont définies avec la variable globale PHP : $_SESSION.
Maintenant, créons une nouvelle page appelée "demo_session1.php". Dans cette page, nous démarrons une nouvelle session PHP et définissons quelques variables de session :
Exemple
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>
</body>
</html>
Remarque : Lasession_start()
fonction doit être la toute première chose dans votre document. Avant toute balise HTML.
Obtenir les valeurs des variables de session PHP
Ensuite, nous créons une autre page appelée "demo_session2.php". Depuis cette page, nous accéderons aux informations de session que nous avons définies sur la première page ("demo_session1.php").
Notez que les variables de session ne sont pas transmises individuellement à chaque nouvelle page, mais qu'elles sont récupérées à partir de la session que nous ouvrons au début de chaque page ( session_start()
).
Notez également que toutes les valeurs des variables de session sont stockées dans la variable globale $_SESSION :
Exemple
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
</body>
</html>
Une autre façon d'afficher toutes les valeurs des variables de session pour une session utilisateur consiste à exécuter le code suivant :
Exemple
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
print_r($_SESSION);
?>
</body>
</html>
Comment ça marche? Comment sait-il que c'est moi ?
La plupart des sessions définissent une clé utilisateur sur l'ordinateur de l'utilisateur qui ressemble à ceci : 765487cf34ert8dede5a562e4f3a7e12. Ensuite, lorsqu'une session est ouverte sur une autre page, il scanne l'ordinateur pour une clé d'utilisateur. S'il y a une correspondance, il accède à cette session, sinon, il démarre une nouvelle session.
Modifier une variable de session PHP
Pour modifier une variable de session, écrasez-la simplement :
Exemple
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>
</body>
</html>
Détruire une session PHP
Pour supprimer toutes les variables de session globales et détruire la session, utilisez session_unset()
et session_destroy()
:
Exemple
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
// remove all session variables
session_unset();
// destroy the session
session_destroy();
?>
</body>
</html>