Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Ricette Cocktail Registrazione domini Area Aziende



Un contatore di accessi con ASP, XML ed XMLDOM

Home + Articoli + Contatori e Statistiche + Articolo # 115
Autore: Luca Ruggiero

Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.


Le soluzioni per far fronte all'esigenza di monitoraggio del numero di accessi al proprio sito sono molteplici ed hanno tutte in comune il fatto che è necessario salvare il numero in un raccoglitore permanente di dati. I potenziali eletti sono:
  • un database
  • un file di testo
  • un file XML
  • nel caso di ASP anche alcuni componenti della famiglia MSWC
In questo Articolo implementeremo un contatore di accessi basandoci su di un file XML, approfittando per ripetere come leggere ed aggiornare una struttura XML con l'oggetto XMLDOM.

Il file XML in cui andremo a leggere e scrivere, per implementare l'utility di cui all'oggetto del presente Articolo, si chiamerà contatore.xml ed ha la seguente struttura:
<?xml version="1.0"?>
<record>
    <numero>0</numero>
</record>
dove il nodo record/numero deve contenere il valore zero (0 numerico ovviamente) o il numero da cui si vuole che parta il contatore.

Attenzione: se volete che il vostro contatore parta con un numero che supera la migliaia, ad esempio proprio mille, raccomando di scrivere 1000 e non 1.000; per separare le migliaia con un punto utilizzeremo l'apposita funzione messa a disposizione da VBScript.

Si crei il file contatore.asp e si aggiunga il seguente codice opportunamente commentato:
<%
    ' Dichiaro le variabili
    Dim file, xml_dom, accessi

    ' Percorso del file XML
    file = Server.MapPath("contatore.xml")

    ' Creo l'oggetto XMLDOM
    Set xml_dom = Server.CreateObject("Microsoft.XMLDOM")

    ' Sincronizzo l'oggetto
    xml_dom.async = False

    ' Carico il file XML
    xml_dom.load(file)

    ' Mi posiziono sul nodo
    Set accessi = xml_dom.selectSingleNode("record/numero")

    ' Aggiorno di una unità il contatore
    accessi.text = CInt(accessi.text) + 1

    ' Salvo il nuovo valore
    xml_dom.save(file)

    ' Leggo gli accessi
    Response.Write FormatNumber(accessi.text, 0)

    ' Un po di pulizia...
    Set xml_dom = Nothing
%>
Attenzione: il file contatore.asp non riporta e non deve riportare in nessun caso la dichiarazione iniziale @LANGUAGE della specifica del linguaggio: includeremo questo file su tutte le pagine che dovranno riportare il contatore in modo da avere un solo codice su cui lavorare in caso di modifiche al contatore stesso.

Per richiamare il contatore sulla Homepage utilizzeremo questo codice:
<%@LANGUAGE = VBScript%>
<html>
    <head>
        <title>Un contatore di accessi con ASP e XML<title>
    </head>
<body>

<p align="center">
    Accessi:
    <!--#include file="contatore.asp"-->
</p>

</body>
</html>
Effettuando delle prove in locale sul proprio IIS su 2000 o XP ricordo di assegnare i permessi in lettura ed in scrittura alla directory di prova.

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones