Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

Introduction aux sessions

Le protocole HTTP est un protocole non connecté (on parle aussi de protocole sans états, en anglais stateless protocol), cela signifie que chaque requête sur une page web est traitée indépendamment des autres et qu'aucun mécanisme n'est prévu à la base pour pouvoir exploiter l'historique des différentes requêtes sur les pages successives. Ainsi le serveur web ne peut pas se « souvenir » de la requête précédente, ce qui empêche des utilisations telles que le commerce électronique, pour lequel une mémorisation des achats de l'utilisateur à travers les différentes pages est nécessaire.

Il est donc nécessaire de trouver un moyen de maintenir une certaine cohésion entre l'utilisateur et la requête, notamment :

  • reconnaître les requêtes provenant du même utilisateur,
  • associer un profil à l'utilisateur,
  • connaître les paramètres de l'application pour l'utilisateur (nombre de produits vendus, ...).

Ce mécanisme de gestion des états est appelé gestion de session (en anglais session tracking).

Présentation de l'objet Session

Le rôle de l'objet Session est ainsi de permettre de stocker temporairement (pendant toute la durée de vie de la session) des informations transmissibles de page en page. Le mécanisme utilisé par l'objet Session pour permettre de transmettre les informations est basée sur l'utilisation de cookies, mais il est réalisé de manière transparente, ce qui signifie que l'utilisateur n'a pas à s'en soucier. L'utilisation de l'objet Session est très simple, elle consiste uniquement à enregistrer une variable dans la session, à la récupérer tout aussi simplement. L'objet Session fournit également les mécanismes permettant de détruire les données de la session.

Les constituants de l'objet Session

L'objet Session possède plusieurs collections, propriétés et méthodes :

Collections Propriétés Méthodes
Contents Contents.count Contents.Remove()
StaticObjects Contents.item(nom) Contents.RemoveAll()
  StaticObjects.count Abandon
  StaticObjects.item(nom)  
  Codepage  
  LCID  
  SessionID  
  Timeout  

L'objet Session peut ainsi être vu comme un conteneur regroupant des données dynamiques rendues accessibles pour un visiteur, tout au long de sa navigation sur le site. L'objet Session regroupe ainsi en quelque sorte l'ensemble des variables globales de l'utilisateur.

Les événements OnStart et OnEnd

L'objet Session propose deux événements, OnStart() et OnEnd(), permettant respectivement d'exécuter des actions au démarrage et à l'arrêt de la session, c'est-à-dire au début de la navigation (ou plus exactement à l'ouverture de la session) ou lorsque l'utilisateur quitte le site (ou plus exactement ferme sa session).

La collection Contents

La collection Contents contient des variables dynamiques créées sur le serveur pour un utilisateur. Il s'agit d'une fonctionnalité très utile permettant par exemple de mettre en place très facilement un panier de courses ou des préférences !

La création d'une valeur dans la collection Contents se fait de la manière suivante :

Session.Contents("nom_variable") = variable

Il existe toutefois une notation équivalente, moins lourde :

Session("nom_variable") = variable

A l'inverse, l'utilisation d'une valeur stockée dans la session se fait en appelant Session("nom_variable"), par exemple comme suit :

Bienvenue <%Response.Write(Session("nom"))%>

La collection Contents contient elle-même deux propriétés et deux méthodes. Les propriétés de la collection Contents sont les suivantes :

  • Contents.count, représentant le nombre d'objets dans la collection ;
  • Contents.item(nom), représentant l'objet identifié par le nom passé entre parenthèses.

Les méthodes de la collection Contents sont les suivantes :

  • Contents.remove(nom), supprime l'objet identifié par le nom passé en argument ;
  • Contents.removeall(), supprime tous les objets de la collection.

Le code suivant permet d'afficher l'ensemble des variables contenues dans la session, ainsi que leurs valeurs :

<%
dim i
For Each i in Session.Contents
  Response.Write("
" & i & " : " & Session(i)) Next %>

La collection StaticObjects

La collection StaticObjects permet de manipuler les données contenues dans les balises HTML <OBJECT> et dont l'attribut scope vaut « application ».

La collection StaticObjects contient elle-même deux propriétés et deux méthodes. Les propriétés de la collection StaticObjects sont les suivantes :

  • StaticObjects.count, représentant le nombre d'objets dans la collection ;
  • StaticObjects.item(nom), représentant l'objet identifié par le nom passé entre parenthèses.

Les méthodes de la collection StaticObjects sont les suivantes :

  • StaticObjects.remove(nom), supprime l'objet identifié par le nom passé en argument ;
  • StaticObjects.removeall(), supprime tous les objets de la collection.

La méthode Abandon()

La méthode Abandon permet d'abandonner la session, c'est-à-dire de supprimer l'ensemble des données qui y sont stockées.

La propriété Timeout

La propriété Timeout permet de modifier la valeur (en minutes) de la durée de la session (par défaut 20 minutes) :

Session.Timeout = nombre_minutes

Plus d'information



Dernière modification le mardi 14 octobre 2008 à 17:40:29.Ce document intitulé « ASP - L'objet Session » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
ASP - L'objet Application Présentation de l'objet Application Le rôle de l'objet Application est de permettre le partage d'information entre plusieurs utilisateurs d'une application. Dans le modèle ASP, une application représente un ensemble de fichiers situés dans le même... www.commentcamarche.net/contents/asp/asp-application.php3
Utilisation de l'objet session en ASP salut à tous, j'ai un problème qui me bloque vraiment. j'utilise l'objet session en ASP pour tuer une session utilisateur. j'utilise la methode abandon de cet objet. concrètement ce que je fais c'est ceci : lorsqu'un utilisateur se loggue à travers... www.commentcamarche.net/forum/affich-1029701-utilisation-de-l-objet-session-en-asp
[Javascript] Variable session?? Bonjour, peut on renseigner une variable de session créé en PHP sous javascript?? Si oui quelle serait la syntaxe?? En javascript, je cherche à récupérer la valeur d'un formulaire dans une variable de session. La valeur du champ est défini comme ceci... www.commentcamarche.net/forum/affich-2663305-javascript-variable-session
[Windows] Mot de passe de session perdu ou oubliéCette astuce vous aidera si vous avez perdu votre mot de passe de session. Cette méthode fonctionne jusqu'à Windows 2000, mais pas (ou plus ?) XP. Si vous n'êtes pas l'administrateur du système Il est nécessaire de demander à l'administrateur de... www.commentcamarche.net/faq/sujet-3879-windows-mot-de-passe-de-session-perdu-ou-oublie
Créer un script d'ouverture de sessionWindows permet de définir des scripts d'ouverture de session, c'est-à-dire des scripts contenant des commandes exécutés dès qu'un utilisateur ouvre une nouvelle session. Les scripts d'ouverture de session permettant de lancer des tâches qui seront... www.commentcamarche.net/faq/sujet-5436-creer-un-script-d-ouverture-de-session
Verrouiller la session Windows XPSous Windows XP, il est possible de verrouiller rapidement la session en cours en appuyant simultanément sur les touches Windows + L ! www.commentcamarche.net/faq/sujet-5041-verrouiller-la-session-windows-xp
ASP : Objet SessionBonjour, J'ai un petit problème auquel je ne trouve pas de solution. Tout d'abord : J'ai créé un site en asp qui crée des fichiers telechargeables générés lors d'une recherche. Ses fichiers correspondent à un utilisateur, j'ai donc donné un nom de... www.commentcamarche.net/forum/affich-13759-asp-objet-session
Variables de session Asp .netBonjour, Je suis débutante en asp .net, j'utilise Visual Studio 2008, et j'essaie de créer une petite application. Je voudrais utiliser les variables de session de la façon suivante : L'utilisateur se logue. Je récupère son identifiant. L'utilisateur... www.commentcamarche.net/forum/affich-12806145-variables-de-session-asp-net
Variable session asp et fonction javascriptSalut à tous, j'ai besoin d'aide en ASP (SVP) mon problème est le suivant, j'ai dans ma page ASP un formulaire avec une liste déroulante sur laquelle je test l'évenement onChange. ............. www.commentcamarche.net/forum/affich-423845-variable-session-asp-et-fonction-javascript
Télécharger Session ManagerSession Manager est un outil permettant de sauver et de restaurer les états de toutes les fenêtres sous Firefox. Cette extension permet de sauvegarder les états courants de Firefox (historique, les données textes, le cookies) et d'y retourner à la... www.commentcamarche.net/telecharger/telecharger-34056237-session-manager
Télécharger ASP.NET Ajax ChatASP.NET Ajax Chat est un utilitaire de chat que vous pouvez incorporez à une base de données d’utilisateurs. Ce programme présente de nombreux avantages : l’option d’accès direct et le cross plat-form sont disponible. Pour contrôler ce qui se dit sur... www.commentcamarche.net/telecharger/telecharger-34059777-asp-net-ajax-chat
ASP - L'objet RequestPrésentation de l'objet Request Le rôle de l'objet Request est de permettre de récupérer la requête HTTP envoyée par le client au serveur, c'est-à-dire qu'il permet en réalité de manipuler l'ensemble des informations envoyées par le navigateur du... www.commentcamarche.net/contents/asp/asp-request.php3
ASP - L'objet ResponsePrésentation de l'objet Response Le rôle de l'objet Response est de permettre de créer la réponse HTTP qui va être envoyée au navigateur, c'est-à-dire la page Web demandée par le client. L'objet Response permet ainsi de manipuler l'ensemble des... www.commentcamarche.net/contents/asp/asp-response.php3
Javascript - L'objet StringLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation... www.commentcamarche.net/contents/javascript/jsstring.php3