Articoli Referenze Script FAQ Downloads Menu Javascript Ricette Cocktail Corsi online Registrazione domini Area Aziende



Sistema di LOG degli accessi in ASP

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



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.txt
Domani sarà:
09-03-2007.txt
e 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.

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Utenti online: 23 - Disclaimer | 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