Creare il log dei Referer

Un Referer č l'URL completo della pagina Web contenente il collegamento ipertestuale utilizzato per raggiungere la pagina ASP attualmente in esecuzione.

Per recuperare il Referer da una pagina ASP basterā leggere con la Request.ServerVariables l'intestazione HTTP HTTP_REFERER. Appena il Referer verrā letto basterā accordarlo in un file di testo (il nostro log) contenente tutti ii referer precedenti.

<%
Dim sReferer, sIP, sScriptName, sDate, sPath
Dim FSO, f

'leggiamo l'IP del visitatore
sIP = Request.ServerVariables("REMOTE_ADDR")

'leggiamo il nome della pagina in esecuzione
sScriptName = Request.ServerVariables("SCRIPT_NAME")

'leggiamo l'intestazione HTTP Referer
sReferer = Request.ServerVariables("HTTP_REFERER")

'controlliamo se contiene un Referer
If sReferer <> "" Then

Set FSO = CreateObject("Scripting.FileSystemObject")

'impostiamo il percorso fisico del file di log
sPath = Server.MapPath("/referer/referer.txt")

'apriamo il file di log in modalitā accodamento (8)
'se il file non esiste verrā creato automaticamente (True)
Set f = FSO.OpenTextFile(sPath, 8, True)

'memorizziamo i dati
'data e ora -- IP -- nome pagina -- referer
sDate = Now & "--" & sIP & "--" & sScriptName & "--" & sReferer
f.WriteLine(sDate)

'chiudiamo il file e liberiamo memoria
f.Close
Set f = Nothing
Set FSO = Nothing

End If
%>
pagina ASP per la lettura del file di log (referer.txt)

<html>
<head><title>Log Referer</title></head>
<body>
<textarea cols="100" rows="30">
<%
Dim sPath, sLog
Dim FSO, f

Set FSO = CreateObject("Scripting.FileSystemObject")

'impostiamo il percorso fisico del file di log
sPath = Server.MapPath("/referer/referer.txt")

'verifichiamo se il file di log esiste
If FSO.FileExists(sPath) Then

'apriamo il file di log in modalitā lettura (1)
Set f = FSO.OpenTextFile(sPath, 1)

'memorizziamo il contenuto del file di testo in
'una stringa (sLog)
sLog = f.ReadAll

'chiudiamo il file e liberiamo memoria
f.Close
Set f = Nothing

Else

'se non esiste memorizziamo messaggio errore
sLog = "Il file di log non esiste"

End If

Set FSO = Nothing

'visualizziamo il log
Response.Write sLog
%>
</textarea>
</body>
</html>