Les sessions en PHP

Une session est un moyen de stocker des informations (dans des variables) à utiliser sur plusieurs pages. Contrairement à un cookie, l’information n’est pas stockée sur l’ordinateur de l’utilisateur.
 
 

Qu’est-ce qu’une session en PHP ?

Une autre façon de rendre les données accessibles à travers les différentes pages d’un site web est d’utiliser une Session PHP.

Une session crée un fichier dans un répertoire temporaire sur le serveur où les variables de session enregistrées et leurs valeurs sont stockées. Ces données seront disponibles pour toutes les pages du site pendant cette session.

Une session se termine lorsque l’utilisateur ferme le navigateur ou après avoir quitté le site, le serveur mettra fin à la session après une période de temps prédéterminée, généralement une durée de 30 minutes.
 

Démarrer une session PHP

Avant de pouvoir enregistrer des informations dans les variables de session, vous devez d’abord démarrer la session. Pour démarrer une nouvelle session, appelez simplement la fonction session_start() de PHP. Elle va créer une nouvelle session et générer un identifiant de session unique pour l’utilisateur.

Le code PHP suivant démarre simplement une nouvelle session.

<?php
	// Démarrer la session
	session_start();
?>

La fonction session_start() vérifie d’abord si une session existe déjà en recherchant la présence d’un ID de session. Si elle en trouve un, c’est à dire que la session est déjà démarrée, elle met en place les variables de session et si ce n’est pas le cas, elle démarre une nouvelle session en créant un nouvel ID de session.
 
 

Stockage et accès aux données de session

Vous pouvez stocker toutes vos données de session sous forme de paires clé-valeur dans le tableau $_SESSION[]. Les données stockées sont accessibles pendant la durée de vie d’une session. Considérons le script suivant, qui crée une nouvelle session et enregistre deux variables de session.

<?php
	// Démarrer la session
	session_start();
	 
	// Stocker des données de session
	$_SESSION["nom"] = "Jean";
	$_SESSION["adresse"] = "Paris";
?>

Pour accéder aux données de session que nous avons définies dans l’exemple ci-dessus depuis n’importe quelle autre page, il suffit de recréer la session en appelant session_start() puis de passer la clé correspondante au tableau associatif $_SESSION.

<?php
	// Démarrer la session
	session_start();
	 
	// Accès aux données de session
	echo 'Nom : ' . $_SESSION["nom"] . '\n'; 
	echo 'Adresse : ' . $_SESSION["adresse"];
?>

La sortie :

Nom :  Jean
Adresse : Paris

 

Détruire une session

Si vous souhaitez supprimer certaines données de session, il suffit d’indiquer la clé correspondante du tableau associatif $_SESSION, comme indiqué dans l’exemple suivant :

<?php
	// Démarrer la session
	session_start();
	 
	// Suppression des données de session
	if(isset($_SESSION["adresse"])){
		unset($_SESSION["adresse"]);
	}
?>

Pour supprimer toutes les variables de session globales et détruire la session, utilisez session_unset() et session_destroy() :
Différence entre session_unset() et session_destroy() en PHPDifférence entre session_unset() et session_destroy() en PHPIl existe deux fonctions PHP très similaires, session_destroy() et session_unset(). Les deux suppriment les variables enregistrées dans une session, mais il existe une différence entre…Lire plus

<?php
	// supprimer toutes les variables de session
	session_unset();

	// détruire la session
	session_destroy();
?>

Chaque session PHP a une duré de vie, mesurée en secondes – qui détermine combien de temps une session doit rester en vie en l’absence de toute activité de l’utilisateur. Vous pouvez ajuster cette durée en changeant la valeur de la variable session.gc_maxlifetime dans le fichier de configuration (php.ini).
Différence entre cookies et session en PHPDifférence entre cookies et session en PHPLes informations des visiteurs destinées à être utilisées sur des site, peuvent être stockées dans des sessions ou des cookies. Les deux accomplissent à peu…Lire plus

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *