Explications sur global.asa
Global.asa est un fichier texte optionnel qui doit être localisé à la racine du site Web.
Un fichier global.asa peut être composé de 3 sections distinctes :
- une ou plusieurs sections <SCRIPT>, qui contiennent la définition des événements de session et d' application,
- une ou plusieurs sections <OBJECT> pour créer des objets de session ou d' application
- une ou plusieurs sections de définition des bibliothèques de types.
Nous nous intéresseront plus particulièrement à la section <SCRIPT>
Cette section regroupe en standard 4 procédures prédéfinies et exécutées à un moment clef. Deux d' entres elles sont exécutées lors de la connexion et de la déconnection d' un visiteur et les deux autres lors de l' arrêt et du démarrage du site. Le fichier Global.asa doit
Syntaxe
La section <SCRIPT> doit commencer et finir avec les délimiteurs HTML de script <SCRIPT> avec deux attributs obligatoires :
- language qui définit le langage de programmation utilisé dans cette section : VBScript, JScript...
- runat dont la valeur est obligatoirement "Server"
<SCRIPT language="VBScript" runat="Server">
' Code VBScript
...
< SCRIPT>
Il est possible d' utiliser ces événements pour définir des variables d' application, qui sont des variables globales, valables pour tous les visiteurs en même temps ou des variables de session définies pour chaque visiteur.
Contenu standard d' un fichier global.asa
< SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_onStart()
'Code à exécuter au démarrage du site
End Sub
Sub Application_onEnd()
'Code à exécuter à l'arrêt du site
End Sub
Sub Session_onStart()
'Code à exécuter à l' arrivée d' un visiteur
End Sub
Sub Session_onEnd()
'Code à exécuter lorsqu' un visiteur quitte le site
End Sub
</SCRIPT>
Les restrictions de global.asa
Modifications
Lorsque le fichier global.asa est modifié, le serveur attend d' avoir répondu à toutes les requêtes en cours avant de recompiler le fichier. Durant cette opération, le serveur HTTP renvoie un message d' erreur disant que la requête ne peut pas être traitée tant que le serveur redémarre.
Les cookies de session
Le global.asa, utilise des cookies de session, c' est a dire que pour identifier un client au milieu de tout ceux connectés au net, lors de la première connection du client, IIS envoie un cookie sur le client, appelé cookie de session. Ce cookie contient un identifiant de session unique généré par IIS, qui permet d' identifier le visiteur lors de sa prochaine visite.
Un problème peut survenir lorsque certains navigateurs ne supportent pas ce type de cookies ou ou lorsque l'utilisateur les a désactivés.
Accès au système de fichiers
Le global.asa ne permet pas l' accès au système de fichier
Acces aux bases de données
Le global.asa ne peut se connecter à une base de données utilisant une connection DSN Less, il peut cependant se connecter à une base de données utilisant une connection DSN.
Exemple pratique
L'exemple le plus caractéristique, mais pas des plus innovant, qui utilise le fichier global.asa : L' indication du nombre de personnes connectées à un site.
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Application("visiteur") = 0
End Sub
Sub Session_OnStart
Application("visiteur") = Application("visiteur") + 1
Application.Unlock
End Sub
Sub Session_OnEnd
Application.Lock
if Application("visiteur")>0 then
Application("visiteur") = Application("visiteur") - 1
end if
End Sub
</SCRIPT>
Explications du contenu de global.asa:
Lorsque le site démarre pour la première fois, le nombre de visiteurs est mis à 0
A l'arrivée de chaque visiteur, l'autorisation de modification des variables applications est bloquée et réservée uniquement à la session qui vient de commencer.
Le nombre de visiteurs est incrémenté.
L'autorisation
de modifcation des variables est rétablie
Au départ de chaque visiteur, l'autorisation de modification des variables applications est bloquée et réservée uniquement à la session.
Le nombre de visiteurs est décrémenté.
L'autorisation
de modifcation des variables est rétablie.
Il faut maintenant récupérer le nombre de visiteurs pour l'afficher sur vos pages :
<%
response.write(Application("visiteur")) ' Affiche le nombre de visiteurs
if Application("visiteur")<2 then ' si moins de 2 visiteurs
response.write("Personne connectée") ' mettre au singulier
else ' si non
response.write("personnes connectées")' mettre au pluriel
end if
%>
Sources dans un fichier ZIP
|