The manual Page
English version
accueil | glossaire | downloads | liens ]
 

Les variables en ASP

Portée et durée de vie des variables

En ASP, la portée des variables à l'intérieur d'une même page ne dépend pas du langage utilisé pour le script. Cette portée s'articule autour de deux principes :

  1. toute variable définie dans une procédure (ou fonction) ne peut être utilisée que dans cette procédure (ou fonction) ; cette variable est créée et ensuite détruite chaque fois que la procédure (ou la fonction) est exécutée.
  2. une variable déclarée en dehors de toute procédure ou fonction peut être lue et modifiée n'importe où dans le script de la page, même dans une fonction ou une procédure.

Dans tous les cas, une variable est détruite lorsque l'exécution du script est terminée. La durée de vie d'une variable est donc limitée au contexte d'exécution du script où elle est définie.

Transmission de variables

La conséquence de ce qui précède est qu'il est impossible a priori de transmettre le contenu d'une variable de page en page. Il existe toutefois plusieurs moyens de résoudre ce problème.

La méthode GET

Cette méthode est la plus simple de toute. Elle consiste à transmettre la variable via l'URL de la page qui doit la recevoir. C'est très pratique pour les redirections et les liens :

<%
' On va creer une variable var1 a transmettre au script de page2.asp
' via son URL (page2.asp?var1=toto...)
var1 = "toto"

' Si on veut faire une redirection vers page2.asp
Response.Redirect("page2.asp?var1=" & var1)

' Si on veut faire un lien vers page2.asp
Response.Write("<A href=""page2.asp?var1=""" & var1 & ">mon lien</A>")
%>

Dans l'exemple ci-dessus, page2.asp reçoit le contenu de var1 via l'URL. Cette variable peut alors être récupérée et utilisée de la façon suivante :

<%
...
var1 = Request.QueryString("var1")
...
%>

Request.QueryString est une collecion représentant la chaine de requête (query string) qui a permis d'appeler la page ASP.

Le problème de cette méthode est qu'il faut penser à ajouter systématiquement la chaîne "?var1=..." au bout de chaque lien.

L'objet Application

Cette méthode n'est à utiliser que dans le cas où l'on veut que des variables soient utilisables par toutes les pages du site. Les variables définies grâce à l'objet Application seront visibles tout le temps quelque soit le visiteur et la page demandée. On peut considérer que les variables d'application sont des variables globales d'application. Un exemple d'utilisation de l'objet Application a été donné au chapitre précédent.

L'utilisation de cette objet est soumise à certaines contraintes (voir le chapitre dédié à cet objet).

Les sessions

C'est peut être la méthode la plus évoluée. Les sessions sont utilisées pour définir des variables propres à chaque utilisateur. Les variables de session sont disponibles pour toutes les pages d'une application ASP donnée. On utilise par exemple les sessions pour stocker les logins et mots de passe des utilisateurs :

<%
...
' Si le login et le mot de passe sont correct, on stocke ces donnees
' et la date de debut de session dans des variables de session
Session("debut") = now()
Session("login") = login
Session("mot_de_passe") = mot_de_passe
...

' Pour utiliser ces variables, on procede comme suit
Response.Write("Login : " & Session("login"))
%>

On peut attribuer une durée de vie aux sessions : lorsque la session a expiré, toutes les variables de session qui existaient sont détruites.

L'utilisation des sessions est souvent liées aux cookies : on ne peut a priori pas utiliser les sessions si le navigateur n'accepte pas les cookies.

Références

Le site W3Schools (en anglais)


format imprimable format imprimable



Copyright © 2000-2006 themanualpage.org - Ce site est soumis aux conditions décrites dans les licences GNU GPL et FDL.