Cuore Batti Cuore - Loris Reinhard - Radio Genius - Alex Damiani e-Thomas.net Network:
 
Il tuo IP: 38.103.63.60
 

Altro
Scarica

 

Sei in: Per i Webmaster - Corso di ASP - Oggetto Session

In aggiunta al supporto per le applicazioni in un sito web, ASP permette di tenere traccia di ogni singolo utente in ogni pagina di una applicazione tramite le sessioni. Una sessione utente inizia ogni qualvolta un utente accede ad una pagina .asp all'interno di una applicazione. La sessione rimane attiva fino a quando l'utente rimane all'interno dell'applicazione stessa. Ci sono due modi per terminare una sessione. Il primo è determinato dal fatto che l'utente non si trovi più all'interno dell'applicazione e in questo caso la sessione terminerà automaticamente dopo un certo periodo di tempo (di default 20 minuti); nel secondo caso si utilizza l'istruzione Session.Abandon in una pagina .asp che forza la chiusura della sessione. L'oggetto Session quindi ci permette di:

  • sapere quando inizia una sessione utente in modo che si possano eseguire determinate operazioni per ogni singolo client connesso
  • sapere quando un utente ha terminato la sua sessione
  • immagazzinare informazioni che possono essere utilizzate dal client durante la sua sessione

Anche per l'oggetto Session è possibile ricavare i nomi e i valori di tutte le variabili di sessione utilizzando la Contents Collection:

<%
Dim Key
For Each Key In Session.Contents
    Response.Write (Key & " vale " & Session(Key))
Next
%>

Per ricavare il valore di una singola variabile di sessione si può utilizzare la sintassi

<% = Session.Contents("nomeVariabile") %>

oppure, essendo Contents la Collection di default

<% = Session("nomeVariabile") %>

Le proprietà dell'oggetto Session
L'oggetto Session ha le seguenti proprietà:

SessionID
Timeout
CodePage
LCID

La SessionID è una proprietà di sola lettura che ritorna il numero di sessione dell'utente. Questo numero è unico per ogni sessione il che significa che ogni utente ha un numero identificativo diverso dagli altri. Potrebbe capitare nel tempo, nel caso in cui un server sia riavviato, che un numero di sessione si ripresenti; è quindi sconsigliato utilizzare questo numero generato automaticamente per salvare eventualmente in un database un dato che si pensa possa per sempre appartenere ad un singolo utente. Per scrivere a video il numero di sessione utente si utilizza la seguente sintassi:

<% = Session.SessionID %>

La proprietà Timeout ci permette di impostare la durata di tempo assegnata all'oggetto Session per ogni applicazione. Il valore è espresso in minuti e il timeout di default è solitamente di 20 minuti. Per modificare il timeout della sessione e metterlo a 30 minuti si utilizza la seguente sintassi:

<% Session.Timeout = 30 %>

CodePage e LCID sono proprietà che servono per impostare o ricavare la codifica delle impostazioni internazionali (lingua, formato data...) da utilizzare per la visualizzazione dei dati.

Metodi dell'oggetto Session
L'oggetto Session ha un metodo (più 2 tramite la Contents Collection); è il metodo Abandon che distrugge tutti gli oggetti memorizzati in un oggetto Session e libera le risorse del server che questi occupavano. Se non si utilizza questo metodo, il server distrugge tutti gli oggetti di sessione al termine della sessione stessa.
Come l'oggetto Application, tramite la Contents Collection si possono utilizzare altri due metodi, Remove e RemoveAll per eliminare un elemento alla volta o tutti gli elementi in un colpo solo.

  1. Session("PrimaVariabile") = "Carote"
  2. Session("SecondaVariabile") = "Cipolle"
  3. Session.Contents.RemoveAll

Le sessioni e il Global.asa
Nella sezione relativa all'oggetto Application, abbiamo visto che ci sono due eventi che si possono utilizzare a livello di applicazione. Ve ne sono anche due che si possono usare a livello di sessione e sono Session_OnStart e Session_OnEnd. Vediamo un classico utilizzo di un file global.asa che ci aiuta a sapere quanti utenti contemporaneamente sono connessi al nostro sito Internet:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
 
Sub Application_OnStart
    Application("ActiveUsers") = 0
End Sub
 
Sub Application_OnEnd
End Sub
 
Sub Session_OnStart
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") + 1
    Application.Unlock
End Sub
 
Sub Session_OnEnd
    Application.Lock
        Application("ActiveUsers") = Application("ActiveUsers") - 1
    Application.Unlock
End Sub
</SCRIPT>

All'interno di una pagina .asp sarà sufficiente la seguente sintassi per visualizzare a video il numero di utenti connessi:

<% = Application("ActiveUsers") %>

IMPORTANTE: le sessioni e quindi le variabili di sessione hanno comunque bisogno che il client abbia abilitato l'utilizzo dei cookies sulla propria macchina per poter essere utilizzate correttamente.

Contattaci. Stampa questa pagina. Contattaci via SMS. e-Thomas.net © 2009 Tutti i diritti riservati
 

F.A.Q. - Chi Siamo - Sitemap - Aspetti legali - Privacy - Le nostre fonti - RSS

Utenti connessi: 9 - Visite: 436.599 dal 10/02/2004 - Visite medie giornaliere: 244