Monitorare gli accessi al proprio sito è sempre molto importante, ed importante è anche conoscere alcuni dati dei propri visitatori, dato che il semplice contatore di accessi non restituisce dati essenziali per sapere se le visite provengono da persone differenti o sempre dai pochi affezionatissimi.
Allo scopo è necessario istituire un sistema di LOG degli accessi basandosi su una struttura ingrado di contenere dei dati.
In genere questo compito è demandato al database, ma è possibile immaginare che un sito che fa molte visite al giorno tenderebbe ad appesantire la banca dati (e quindi il carico di lavoro del server) in men che non si dica; quindi... perchè sprecare risorse?
Altro sistema comodo per la memorizzazione dei dati di accesso al sito (nel caso specifico ci interessano data ed ora dell'accesso ed indirizzo IP del visitatore) è XML che, essendo un file di testo a tutti gli effetti, per di più con una struttura logica e comoda acui accedere in lettura ed in scrittura, risulta perfetto allo scopo.
Quindi usiamo XML? No, utilizzeremo un normale file di testo :-)
Passiamo all'atto pratico. Gestiremo tutto in ASP
Si predisponga sul server in cui lo script deve andare in produzione una cartella con i permessi in scrittura sui file di testo, ad esempio log.
Si crei nella root del proprio sito il file log.asp di cui segue il codice, corredato da opportuni commenti:
<%
' RECUPERO LA DATA E L'ORA DELL'ACCESSO
Dim gg, mm, aa, hh, mn, ss, data, ora
gg = Day(Date())
mm = Month(Date())
aa = Year(Date())
hh = Hour(Time())
mn = Minute(Time())
ss = Second(Time())
data = gg & "/" & mm & "/" & aa
ora = hh & ":" & mn & ":" & ss
' IMPOSTO IL NOME AL FILE DI LOG
' E RECUPERO L'IP DEL VISITATORE
Dim log, ip
log = "log/" & gg & "-" & mm & "-" & aa & ".txt"
ip = Request.ServerVariables("REMOTE_ADDR")
' SCRIVO I DATI NEL FILE DI TESTO
Dim fso, inserisci, vecchi
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set inserisci = fso.OpenTextFile(Server.MapPath(log), 8, True)
inserisci.WriteLine ora & " - " & ip
' UN PO DI PULIZIA...
Set inserisci = Nothing
Set fso = Nothing
%>
L'unica riga che andrebbe cambiata è questa:
log = "log/" & gg & "-" & mm & "-" & aa & ".txt"nella porzione evidenziata in grassetto, nel solo caso in cui la cartella che conterrà i file di testo si chiami in modo diverso da log.
Il risultato sarà una serie di file di testo che avranno il nome della data corrente. Oggi ad esempio, nel momento in cui scrivo, è l'8 marzo (auguri a tutte le donne) ragion per cui il file avrà nome:
08-03-2007.txtDomani sarà:
09-03-2007.txte cosi via.
Questo file va incluso in tutte le pagine del sito con le SSI:
<!--#include file="log.asp"-->oppure:
<!--#include virtual="/log.asp"-->nel caso in cui il sito sia gestito in più cartelle.
| Corso ASP Corso completo per la creazione di siti Web dinamici. A partire da 39 €. | |
| Corso ASP da Zero Imparare Microsoft ASP e VBScript da zero. A soli 29 €. | |
| Corso ASP e Access Gestione di un database MS Access con ASP. A soli 29 €. |