Utenti online con global.asa e XML

3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>

Il global.asa

Anzitutto vediamo le funzioni contenute nel global.asa:

Sub Application_OnStart
  On Error Resume Next

  'Path fisica del sito
  Application("dir")="\LavoriASP\ArticoliAspItalia\UtentiPresenti\"
  Application("dirProtetta")=Application("dir") & "DataBase\"
  'Connessione OLE-DB
  Application("dbUtenti") = "Provider=Microsoft.Jet.Oledb.4.0;data source=" &  mid(server.mappath("1"),1,2) & Application("dirProtetta") & "DBUtenti.mdb"

  Dim objXMLdoc

  Set objXMLdoc = Server.CreateObject ("Microsoft.XMLDOM")
  objXMLdoc.async = False
  Set objXMLroot = objXMLdoc.createElement("UtentiConnessi")
  objXMLdoc.appendchild (objXMLroot)
  objXMLdoc.Save Application("dirProtetta") & ("utenti.xml")

  Set objXMLroot=Nothing
  Set objXMLdoc = Nothing
End Sub

Questa procedura crea (e nel caso ricrea) il file utenti.xml all'avvio dell'applicazione asp, settando come elemento root del file il tag <UtentiConnessi>

Application("dirProtetta") è il percorso fisico in cui salvare il file ed è necessario che sia una cartella provvista dei diritti di scrittura; per questo esempio è stata scelta la cartella in cui risiede anche il database.

Sub Session_OnStart()
  On Error Resume Next

  Dim objXMLdoc
  Dim root
  Dim newElem

  Set objXMLdoc = server.createobject("Microsoft.XMLDOM")
  objXMLdoc.async = false
  objXMLdoc.load Application("dirProtetta") & ("utenti.xml")

  Set root = objXMLdoc.documentElement
  Set newElem = objXMLdoc.createElement("Session_" & Session.SessionID)
  root.appendchild newElem
  newelem.setattribute "User",""
  newelem.setattribute "Data",FormatDateTime(now,2)
  newelem.setattribute "Ora",FormatDateTime(now,4)

  objXMLdoc.Save Application("dirProtetta") & ("utenti.xml")

  Set newElem= Nothing
  Set root= Nothing
  Set objXMLdoc= Nothing
End Sub

Vediamo alcune righe nel dettaglio:

Set newElem = objXMLdoc.createElement("Session_" & Session.SessionID)
root.appendchild newElem

Crea un elemento figlio con un TagName che include l'ID della Sessione.

newelem.setattribute "User",""
newelem.setattribute "Data",FormatDateTime(now,2)
newelem.setattribute "Ora",FormatDateTime(now,4)

Queste righe aggiungono alcune informazioni sull'utente creando tre attributi User, Data e Ora all'interno del tag.

Alla fine di questo processo, nel file utenti.xml avremo una stringa simile a questa

<Session_893547789 User="" Data="5/11/2002" Ora="16:59"/>

Sub Session_OnEnd()
  On Error Resume Next

  Dim objXMLdoc
  Dim root
  Dim currNode

  Set objXMLdoc = server.createobject("Microsoft.XMLDOM")
  objXMLdoc.async = false
  objXMLdoc.load Application("dirProtetta") & ("utenti.xml")
  Set root = objXMLdoc.documentElement
  Set currNode = root.getElementsByTagName("Session_" & Session.SessionID)
  root.removeChild(currNode.item(0))
  objXMLdoc.Save  Application("dirProtetta") & ("utenti.xml")

  Set currNode = nothing
  Set root = nothing
  Set objXMLdoc = nothing
End Sub

Quando l'utente abbandona il sito non facciamo altro che recuperare ed eliminare l'elemento relativo alla sua Sessione.

A questo punto mancano soltano la procedura per leggere quanti utenti sono presenti sul sito e quella per cambiare il valore dell'attributo User in modo da poter distinguere tra utenti registrati e non.

3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC