En informatique, une session est l'exécution d'un programme pour un utilisateur donné. L'exécution du programme est alors paramétrée par les informations du profil de l'utilisateur (ses caractéristiques, ses préférences, l'historique de ses interactions avec le programme, etc.)
Une session démarre lorsque l'utilisateur commence à interagir avec un programme.
L'ouverture de session peut être :
Selon toute logique, une session devrait se terminer lorsque l'utilisateur arrête de se servir du système. En pratique, hormis les cas où l'on a une demande volontaire d'arrêt de la session (telle une déconnexion), l'utilisateur peut toujours laisser le programme en cours de session et revenir par la suite. Cela n'est pas sans poser des problèmes, notamment en matière de sécurité. Le concepteur du programme peut alors imposer un temps limite d'inactivité ou une échéance : passé un certain temps, la session est invalidée.
Les informations de session sont conservées dans un profil de l'utilisateur (en général, un ensemble de variables). Elles peuvent être fugaces ou stockées à moyen/long terme dans un ensemble de fichiers, d'entrées dans une base de données, etc. Elles sont soit chargées à l'ouverture de session, et mises à jour à la fin, soit dynamiquement pendant les interactions.
Certaines informations sensibles de la session doivent être isolées et/ou protégées par des droits d'accès, tandis que d'autres peuvent être partagées par plusieurs profils.
L'informatique fait souvent appel à la notion de session :
Les sessions sont indispensables dès qu'un site comporte une partie membres. Elle sont plus sécurisées que les cookies. Elles permettent de garder en mémoire sur le serveur chaque personne, identifiée ou non, visitant le site. Les fonctions de sessions doivent toujours êtres appelées avant l'écriture de code HTML. Ainsi, la première chose conseillée à faire sur chaque page PHP est : session_start();
Les variables de sessions sont appelées variables superglobales, car elles sont toujours là, même si la page est rechargée par le serveur. Les sessions ont un temps de vie défini par le serveur. Ce temps varie généralement entre 5 et 30 minutes.
Les variables de sessions sont stockées dans un tableau PHP simple appelé $_SESSION(lien)
.
Voici comment définir une variable de session :
$_SESSION['id'] = $variable;
Les variables de sessions se récupèrent ainsi :
$variable = $_SESSION['id'];
Voici une méthode sûre afin de détruire une session en cas de déconnexion (manuelle ou forcée) :
$_SESSION = array(); //Ecrase les variables de sessions en recréant un tableau vide session_destroy(); //Supprime le fichier serveur de la session
Les fichiers de sessions sauvegardés sur le serveur ont ce format :
> Nom du fichier > sess_fe089db4fa4f15978286da2432db9ab3 > Contenu > id|i:1;name|s:6:"Didjor";
Regardons de plus près ce qui définit une variable de session :
> Name|Type:Char_nb:Value;