PDF (adobe.com)

A propos des variables de session



Les variables de session permettent de stocker et d'afficher des informations conservées pendant toute la durée de la visite (ou session) de l'utilisateur. Le serveur crée un objet de session différent pour chaque utilisateur et le conserve pendant une période définie ou jusqu'à ce qu'il soit explicitement clos.

Comme les variables de session sont conservées pendant toute la session de l'utilisateur, même lorsque celui-ci passe d'une page à l'autre dans le site Web, elles conviennent parfaitement au stockage des préférences de l'utilisateur. Les variables de session peuvent également être utilisées pour insérer une valeur dans le code HTML de la page, attribuer une valeur à une variable locale ou fournir une valeur permettant d'évaluer une expression conditionnelle.

Avant de définir des variables de session pour une page, vous devez les créer dans le code source. Après avoir créé une variable de session dans le code source de l'application Web, vous pouvez utiliser Dreamweaver pour récupérer sa valeur et l'utiliser dans une page Web.

Fonctionnement des variables de session

Les variables de session stockent des informations (très souvent des paramètres de formulaire ou d'URL envoyés par les utilisateurs) et les rendent accessibles à toutes les pages de l'application pendant la durée de la visite d'un utilisateur. Ainsi, lorsqu'un utilisateur se connecte à un portail Web lui donnant accès à une messagerie, des cours boursiers, des bulletins météo et des dossiers d'actualité, l'application Web stocke les informations de connexion dans une variable de session qui identifie l'utilisateur dans toutes les pages du site. Cela permet à l'utilisateur de ne voir que le type de contenu qu'il a sélectionné pendant qu'il parcourt le site. Les variables de session peuvent également proposer un mécanisme de sécurité en mettant fin à la session d'un utilisateur si le compte reste inactif pendant un certain temps. Cette méthode présente aussi l'avantage de libérer les ressources de traitement et la mémoire du serveur lorsque les utilisateurs oublient de se déconnecter d'un site Web.

Les variables de session stockent les informations pendant toute la durée de la session d'un utilisateur. La session commence lorsque l'utilisateur ouvre une page dans l'application et se termine lorsqu'il n'ouvre pas d'autre page dans l'application pendant un laps de temps donné ou lorsqu'il met explicitement fin à la session (en général, en cliquant sur un lien de déconnexion). Tant qu'elle existe, la session est spécifique à un utilisateur donné ; chaque utilisateur dispose donc d'une session qui lui est propre.

Faites appel aux variables de session pour stocker des informations auxquelles chaque page de l'application Web doit pouvoir accéder. Ces informations peuvent aller du nom de l'utilisateur à ses préférences pour la taille des polices à l'écran, en passant par un indicateur signalant la réussite ou l'échec de sa connexion. Les variables de session sont également souvent utilisées pour assurer le suivi d'un comptage cumulatif, tel que le nombre de questions auxquelles un utilisateur a répondu correctement jusqu'à présent dans un quiz en ligne ou les produits qu'il a sélectionnés dans un catalogue en ligne.

Les variables de session ne peuvent fonctionner que si le navigateur de l'utilisateur est configuré pour accepter les cookies. Le serveur crée un numéro d'ID de session qui permet l'identification univoque de l'utilisateur lors de l'initialisation de la première session, puis envoie au navigateur de l'utilisateur un cookie contenant ce numéro d'ID. Lorsque l'utilisateur demande une nouvelle page située sur le serveur, celui-ci lit le cookie dans le navigateur pour identifier l'utilisateur et récupérer ses variables de session personnelles, stockées en mémoire.

Collecte, stockage et récupération d'informations dans des variables de session

Avant de créer une variable de session, vous devez commencer par obtenir les informations à stocker, puis les envoyer au serveur pour stockage. Vous pouvez recueillir et envoyer des informations au serveur à l'aide de formulaires HTML ou de liens hypertexte contenant des paramètres d'URL. Vous pouvez également obtenir des informations à partir d'une base de données, des cookies stockés dans l'ordinateur d'un utilisateur ou des en-têtes HTTP envoyés par son navigateur avec une demande de page.

Un catalogue de produits utilisant des paramètres d'URL figés dans le code et créés à l'aide d'un lien pour renvoyer des informations sur les produits au serveur afin qu'elles soient stockées dans une variable de session est un exemple typique de stockage de paramètres d'URL dans les variables de session. Quand un utilisateur clique sur le lien « Add to shopping cart » (Ajouter au panier), l'ID du produit est stockée dans une variable de session pendant que l'utilisateur poursuit ses achats. Lorsqu'il passe à la page de paiement, l'ID du produit stockée dans la variable de session est récupérée.

Un sondage reposant sur un formulaire est un exemple typique de page stockant les paramètres de formulaire dans les variables de session. Le formulaire renvoie l'information sélectionnée au serveur, où une page d'application note le sondage et stocke les réponses dans une variable de session, afin, par exemple, de les transmettre à une application qui regroupe les réponses de toutes les personnes ayant répondu au sondage. Il est également possible que les informations soient stockées dans une base de données pour être utilisées ultérieurement.

Une fois que vous avez envoyé les informations au serveur, vous pouvez les stocker dans des variables de session en ajoutant à la page spécifiée par le paramètre de formulaire ou d'URL le code adapté à votre modèle de serveur. Appelée page de destination, cette page est spécifiée soit dans l'attribut action du formulaire HTML, soit dans l'attribut href du lien hypertexte situé dans la première page.

Après avoir stocké une valeur dans une variable de session, vous pouvez utiliser Dreamweaver pour la récupérer et l'utiliser dans une application Web. Après avoir défini la variable de session dans Dreamweaver, vous pouvez en insérer la valeur dans une page.

La syntaxe HTML de chaque attribut se présente comme suit :

<form action="destination.html" method="get" name="myform"> </form> 
<param name="href"value="destination.html">

Le choix de la technologie serveur et de la méthode d'obtention des informations détermine le code utilisé pour stocker les informations dans une variable de session. La syntaxe de base de chaque technologie serveur se présente comme suit :

ColdFusion

<CFSET session.variable_name = value>

ASP

<% Session("variable_name") = value %>

L'expression value correspond en général à une expression de serveur telle que Request.Form("lastname"). Ainsi, si vous utilisez un paramètre d'URL appelé product (ou un formulaire HTML avec la méthode GET et un champ de texte appelé product) pour recueillir des informations, les instructions suivantes stockent les informations dans une variable de session appelée prodID :

ColdFusion

<CFSET session.prodID = url.product>

ASP

<% Session("prodID") = Request.QueryString("product") %>

Si vous utilisez un formulaire HTML avec la méthode post et un champ de texte appelé txtProduct pour recueillir les informations, les instructions suivantes stockent alors ces informations dans la variable de session :

ColdFusion

<CFSET session.prodID = form.txtProduct>

ASP

<% Session("prodID") = Request.Form("txtProduct") %>

Exemple d'informations stockées dans des variables de session

Vous travaillez sur un site destiné à un vaste public de retraités. Dans Dreamweaver, ajoutez deux liens sur la page d'accueil du site pour que les utilisateurs puissent modifier la taille du texte affiché. Si l'utilisateur souhaite un affichage en caractères plus gros pour un texte plus facile à lire, il lui suffit de cliquer sur un lien ; s'il souhaite un texte de taille standard, il clique sur un autre lien.


Chaque lien comporte un paramètre d'URL appelé fontsize. Il envoie au serveur la préférence de texte de l'utilisateur, comme le montre l'exemple suivant, spécifique à Adobe ColdFusion® :

<a href="resort.cfm?fontsize=large">Larger Text</a><br> 
<a href="resort.cfm?fontsize=small">Normal Text</a>

Stockez la préférence de texte de l'utilisateur dans une variable de session et de l'utiliser afin de définir la taille de police à utiliser dans chaque page demandée par l'utilisateur.

En haut de la page de destination, saisissez le code suivant pour créer une session appelée font_pref qui stocke la préférence de l'utilisateur pour la taille de police.

ColdFusion

<CFSET session.font_pref = url.fontsize>

ASP

<% Session("font_pref") = Request.QueryString("fontsize") %>

Lorsque l'utilisateur clique sur le lien hypertexte, la page envoie à la page de destination la préférence de texte de l'utilisateur dans un paramètre d'URL. Le code de la page de destination stocke le paramètre d'URL dans la variable de session font_pref. Pendant la durée de la session de l'utilisateur, toutes les pages de l'application récupèrent cette valeur et affichent la taille de police sélectionnée.