The manual Page
Version française
   
index | glossary | news | downloads | links ]
  introduction à ASP
écrire en ASP
le fichier global.asa
les variables
les objets ASP 3.0
l'objet Request
l'objet Response
l'objet ObjectContext
l'objet Application
l'objet Session
l'objet Server
l'objet ASPError
 
news
glossary
links
downloads
 
credits
contact
 
 
search
 
last update
19/02/2003
Valid HTML 4.0!
Valid CSS!
Hit-Parade
Mesurez votre audience


  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)


Warning: main(../include/imprimable.php) [function.main]: failed to open stream: No such file or directory in /home.10.21/themanua/www2/asp/asp_variables.php3 on line 134

Warning: main() [function.include]: Failed opening '../include/imprimable.php' for inclusion (include_path='.:/usr/local/lib/php') in /home.10.21/themanua/www2/asp/asp_variables.php3 on line 134


Copyright © 2000-2002 themanualpage.org - This site is submissive to the terms of the GNU GPL and FDL licences.