Global.asa II Parte
Esempi di Global.asa
Ricordiamo che un’applicazione può avere
soltanto un file Global.asa.
Esempio 1
Questo esempio illustra il modo in cui costruire uno
script che obblighi gli utenti a visitare una determinata
pagina , come prima pagina visitata. Se la pagina corrente (
all'interno dell'evento Session_OnStart ) è la
pagina definita come pagina iniziale, non fa nulla altrimenti
usa il metodo Response.Redirect per ridirezionare
l'utente sulla home page desiderata.
<SCRIPT RUNAT=Server Language=VBScript>
Sub Session_OnStart
' Verifica che la prima pagina visitata dall'utente
' sia la home page da noi definita
' Sostituire startPage con il path
' della nostra Home Page
startPage = "/MyApp/StartHere.asp"
currentPage = Request.ServerVariables("SCRIPT_NAME")
if strcomp(currentPage,startPage,1) then
Response.Redirect(startPage)
end if
End Sub
</SCRIPT>
Attenzione:
Il precedente script funziona soltanto se il browser
dell'utente supporta i cookies. E' necessario quindi
informare l'utente nella HOME PAGE che il sito Web
necessita dell'abilitazione dei cookies.
Tutti gli eventi che seguono il metodo Redirect
nell'evento Session_OnStart non vengono eseguiti.
<SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart ' Session initialization script Response.Redirect "http:/server/app/StartHere.asp" End sub </SCRIPT>
Esempio 2
All'avvio dell'applicazione viene letto un file di
testo contenente il valore con cui inizializzare la variabile
globale Application("accessi") per il conteggio
degli accessi al sito Web; all'inizio di ciascuna
sessione utente il valore degli accessi viene incrementato,
mentre alla terminazione dell'applicazione il valore
aggiornato degli accessi verrà memorizzato nel
file.
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
'Inizializza la variabile per il conteggio del numero di accessi
'leggendo il valore memorizzato in un file di testo
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set NAccessiFile =FileObject.OpenTextFile("accessi.txt" , 1 , FALSE , FALSE )
Application("accessi") = NAccessiFile.ReadLine
End Sub
</SCRIPT>
----------------------------
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnEnd
'Sovrascrive il file "accessi.txt" con un file aggiornato
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Set NAccessiFile =FileObject.CreateTextFile("accessi.txt" , 1 , TRUE , FALSE )
NAccessiFile.WriteLine( Application("accessi"))
End Sub
</SCRIPT>
-------------------------------
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
'Incrementa il numero di accessi
Application.lock
Application("accessi") = Application("accessi") + 1
Application.unlock
End Sub
</SCRIPT>
--------------------------------
<OBJECT RUNAT=Server SCOPE=Scope ID=Identifier {PROGID="progID"|CLASSID="ClassID"}>
</OBJECT>
Esempio 3
Con questo global.asa possiamo visualizzare il
numero degli utenti collegati al nostro sito Web senza dover
utilizzare nessun file testo. In Application_OnStart
inizilizziamo il timeout di sessione e la variabile WhosOn
che conta il numero di utenti online. In Sessione_OnStart
incrementiamo WhosOn mentre quando l’utente termina la
sua sessione ( Session_OnEnd ) la decrementiamo.
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
Session.Timeout = 3
Application.Lock
Application("WhosOn") = 0
Application.UnLock
End Sub
Sub Session_OnStart
Application.Lock
Application("WhosOn") = Application("WhosOn") + 1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("WhosOn") = Application("WhosOn") - 1
Application.UnLock
End Sub
</SCRIPT>
Per visualizzare la variabile WhosOn possiamo inserire il
seguente script nella pagina iniziale della nostra
applicazione.
<%
response.write "Ci sono " & Application("WhosOn") & " utenti in questo sito web."
%>