Newsgroup: it.comp.www.asp
Titolo: chiusura sessione

Cioa tutti,
vorrei sapere se con la ASP è possibile effettuare un operazione, quando
l'utente chiude la sessione.
..oppure se esiste un modo per avere l'id di tutte le sessioni aperte al
momento.
Grazie anticipatamente per l'aiuto.
Marco
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Marco
Nel primo caso è sufficiente inserire nel global.asa (vedi aspitalia x
maggiori info) la funzione:
Sub Session_OnEnd()
' operazione a chiusura sessione
end sub
Per la seconda domanda puoi memorizzare le session id di tutti gli utenti in
una variabile Application.
--
Ciao
Andrea Z.

 Andrea Z.
Grazie per avermi risposto.
Ho dato un occhiata ad aspitalia ma una cosa mi rimane poco chiara:
se l'utente chiude il browser è una fine di sessione , una fine di
applicazione, o nessuna delle due ?
Inoltre dove devo mettere il mio file global.asa?
Ti ringrazio anticipatamente per l'aiuto.
Ciao.



Per la prima domanda ti rispondo con una domanda:
- Come può sapere il server che contiene il sito che un utente remoto ha
chiuso il browser, disconnesso da internet, spento il PC oppure sta leggendo
con calma tutta la pagina?
Ovviamente non può: lui controllerà lo stato di sessione per quell'utente
(che ricordo è collegato ad un cookie); se dopo x minuti esso non visita più
pagine penserà che se ne è andato dal sito, quindi chiuderà la sessione per
quell'utente (anche nel caso l'utente sia ancora lì a leggere la pagina e a
decidere il da farsi).
Lo stato Applicazione pressappoco non si chiude mai (tranne al blocco o
spegnimento dell'IIS sul server ecc...).
Il global.asa è un file di testo da inserire nella root del suo sito. Essa
può contenere 4 subroutine collegate a 4 eventi:
- Application_OnStart
- Application_OnEnd
- Session_OnStart
- Session_OnEnd
Le prime due avvengono all'avvio dell'applicazione (alla prima visita del
sito dopo il riavvio del server normalmente) e alla sua chiusura.
Le ultime due avvengono: la prima alla prima pagina vista da un nuovo
utente; la seconda quando scade la sessione dopo x minuti (20 minuti
normalmene).
Ti riporto qui di seguito il *famoso* global.asa che conta gli utenti
connessi contemporaneamente:
SCRIPT LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
  Application.Lock
  Application("collegati") = 0
  Application.UnLock
End Sub
Sub Session_OnStart
 Application.Lock
 Application("collegati") = Application("collegati") + 1
 Application.UnLock
End Sub
Sub Session_OnEnd
 Application.Lock
 Application("collegati") = Application("collegati") - 1
 Application.UnLock
End Sub
</SCRIPT>
E per visualizzare nelle normali pagine asp il numero di utenti
contemporanei:
<%
   response.write "Ci sono " & Application("collegati") & " utenti
collegati."
%>
Naturalemente ti rinvio a quell'articolo su aspitalia per maggiori info...
--
Ciao,
Andrea Z.

 Andrea Z.
Ciao Andrea,
grazie per la spiegazione.
In pratica il mio problema è questo:
registro delle informazioni rigurdanti alcune operazioni eseguite
dall'utente, in una tabella che si chiama session.sessionid.
Quindi ogni utente ha la sua tabella personale, il problema è fare un DROP
se l'utente non segue tutte le normali procedure ( ad esempio se se
chiudesse il browser )....a questo punto penso sia meglio cercare un altro
modo per salvare le info che mi occorrono senza affossare la base dati...
Ciao
Marco.
