Una Pagina Conta Click con ASP e XML

16 maggio 2007 | Sviluppo Web | Nessun Commento.

Qualche giorno fa Andrea, un lettore che ringrazio per lo spunto che mi ha fornito per questo intervento, mi ha scritto per chiedermi qualche consiglio nella realizzazione di una pagina "contaclick".

Lo scopo di una pagina del genere potrebbe essere quello di monitorare quanti utenti di un sito navigano verso una pagina esterna.

La soluzione più semplice per la realizzazione di un sistema del genere in ASP è sicuramente quella di utilizzare un file XML per memorizzare i link e il numero di click ad essi associato:

<?xml version="1.0" ?>
<links>
    <link id="l0" click="0">http://www.minifloppy.it</link>
</links>


La pagina ASP potrebbe invece essere richiamata passando un parametro idlink (ad es. click.asp?idlink=0) e potrebbe essere strutturata così

<%
Set objXML = Server.CreateObject("Msxml2.DOMDocument.4.0")
'Carico i dati XMLobjXML.async = False
objXML.load(Server.MapPath("clicks.xml"))

'Seleziono l'oggetto
Set objData = objXML.selectSingleNode("links/link[@idlink='"& Request.QueryString("idlink") &"']")

objData.setAttribute "click", CInt(objData.getAttribute("click")) + 1

url = objData.Text
'l'url è memorizzato all'interno del nodo, così non
'ci dovrebbero essere errori con caratteri speciali
'meglio ancora sarebbe memorizzarlo all'interno di
'una sezione CDATA

objXML.Save(Server.MapPath("clicks.xml"))

'Pulizia
Set objData = nothing
Set objXML = nothing

Response.Redirect(url)
%>

Naturalmente il codice può essere ulteriormente sviluppato.
Ad esempio, potremmo passare come parametro alla pagina click.asp direttamente il link da seguire. La pagina ASP a questo punto si dovrebbe occupare di controllare se il link sia già stato indicizzato, aumentando a questo punto il corrispondente numero di click; se il link invece non fosse presente nel file XML, la pagina si preoccuperebbe di aggiungerlo automaticamente.

Il vantaggio di una soluzione come questa sarebbe enorme dato che il sistema sarebbe interamente automatizzato e al webmaster basterebbe semplicemente inserire nelle sue pagine un link come il seguente:

click.asp?link=http://www.minifloppy.it

Ovviamente, perchè entrambi i sistemi funzionino, bisogna disporre di una cartella con permessi di scrittura in cui inserire il file XML.