Scopo dello script
In questo articolo intendo mostrarvi un metodo per la realizzazione delle statistiche di accesso al proprio sito web sfruttando un database di tipo Ms. Access.
Codice script (pagina index.asp )
<%
session.timeout = 5
if session("valido")<>"valido" then
dim strCode
strCode="innovatel"
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("statistiche.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn
sql = "SELECT * FROM statistiche"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
rs.addnew
'Rilevamento indirizzo Ip
rs(1) = Request.ServerVariables("REMOTE_ADDR")
'Rilevamento Orario di connessione ( formato del server )
rs(2) = time()
'Rilevamento Data di connessione ( formato del server )
rs(3) = date()
rs.update
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
session("valido")="valido"
end if
%>
<HTML>
<HEAD>
<TITLE>statistiche nel web</TITLE>
<meta http-equiv="refresh" content="5;URL=http://www.innovatel.it">
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<table width="100%" border="0" cellspacing="0"
cellpadding="0" height="100%">
<tr>
<td>
<div align="center">
<table width="400" border="0" cellspacing="0"
cellpadding="0">
<tr>
<td bgcolor="#000000">
<div align="center"><b><font color="#FFFFFF">Grazie
per essere venuto a trovarci</font></b></div>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</BODY>
</HTML>
Spiegazione script
Una volta chiamata la pagina index.asp , essa verrà elaborata sul server ( per quanto riguarda la parte di codice asp presente in essa ) e dovrà calcolare l'orario di connessione, la data di connessione e l'indirizzo I.P. del visitatore.Una nota sullo script : la data e l'ora verranno memorizzate nel formato del server ; in caso il server non fosse con impostazioni italiane, bisogna stare attenti ad eventuali fusi orari ed impostazioni di formato. All'interno dello script è presente una variabile di sessione, con una vita di cinque minuti ( impostata con session.timeout= 5 ). Tramite questa impostazione si decide che un accesso univoco ha la durata di 5 minuti. Infatti, se nell'arco di quei 5 minuti, lo stesso utente si ricollega alla pagina, il suo accesso NON verrà considerato e quindi verra escluso dal database. È possibile modificare questo tempo di " esclusione " modificando la proprietà indicata ( session.timeout = n_minuti ) Una volta eleborati questi dati, essi verranno immessi nel database. La struttura del database la trovate qua sotto.
Struttura del database
Campo | Tipo | Contenuto |
Id | Contatore | Chiave primaria |
Ip | Testo di 20 caratteri | Indirizzo I.P. del visitatore |
Ora | Testo di 10 caratteri | Orario di connessione del visitatore |
Data | Testo di 10 caratteri | Data di connessione del visitatore |
Cosa otterremo?
Dopo aver eseguito lo script in questione, a video otterremo il seguente risultato:
Per quanto riguarda le statistiche ottenute, a video non apparirà nulla. Vedremo come mostrare a video i dati elaborati da questo script.
Scarica lo zip con gli esempi.
Scopo dello script
A questo punto, intendo mostrare un metodo possibile per visualizzare i risultati dalle elaborazioni effettuate dello script della prima parte.
Codice Script
<html>
<head>
<title>statistiche nel web [ Parte 2° ]</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="100%" border="0" cellspacing="0"
cellpadding="0" height="100%">
<tr>
<td>
<div align="center">
<table width="450" border="0" cellspacing="2"
cellpadding="2">
<tr bgcolor="#33CCFF">
<td colspan="3">
<div align="center"><b><font color="#FFFFFF"
size="2">Visione Statistiche Sito Web</font></b></div>
</td>
</tr>
<tr>
<td width="179"> </td>
<td width="134"> </td>
<td width="135"> </td>
</tr>
<tr bgcolor="#33CCFF">
<td width="179">
<div align="center"><b><font color="#FFFFFF"
size="2">Indirizzo I.P.</font></b></div>
</td>
<td width="134">
<div align="center"><b><font color="#FFFFFF"
size="2">Data </font></b></div>
</td>
<td width="135">
<div align="center"><b><font color="#FFFFFF"
size="2">Ora</font></b></div>
</td>
</tr>
<tr>
<td width="179"> </td>
<td width="134"> </td>
<td width="135"> </td>
</tr>
<%
dim strCode
strCode="innovatel"
dim intVolta
intVolta="0"
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("statistiche.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn
sql = "SELECT * FROM statistiche"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn,3,3
do while not(rs.eof)
if intVolta="1" then
intVolta="0"
intTesto="#00FF99"
intSfondo="#CC3366"
else
intVolta="1"
intTesto="#FFFF99"
intSfondo="#CC99FF"
end if
%>
<tr bgcolor="<%=intSfondo%>">
<td width="179"><font size="2" color="<%=intTesto%>"><center><%=rs(1)%></center></font></td>
<td width="134"><font size="2" color="<%=intTesto%>"><center><%=rs(2)%></center></font></td>
<td width="135"><font size="2" color="<%=intTesto%>"><center><%=rs(3)%></center></font></td>
</tr>
<%
rs.movenext
loop
%>
<tr>
<td colspan="3"> </td>
</tr>
<% if rs.bof then %>
<tr>
<td colspan="3" bgcolor="#33CCFF">
<div align="center"><b><font color="#FFFFFF"
size="2">Nessun Dato Presente.</font></b></div>
</td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<% else %>
<tr>
<td colspan="3" bgcolor="#33CCFF">
<div align="center"><b><font color="#FFFFFF"
size="2">Fine Statistiche</font></b></div>
</td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<%
end if
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
<tr>
<td colspan="3"><font size="2"><center><b>Script
Realizzato da <a href="http://www.innovatel.it" target="_blank">Tele-Com
Service S.n.c.</a></b></center></font></td>
</tr>
</table>
</body>
</html>
Spiegazione Script
Data la semplicità di lettura della parte in html, mi soffermerò a spiegare solamente la funzione creata tramite Active Server Page che ha il compito di mostrare al gestore del sito, o agli utenti, le statistiche di accesso al web. Dopo aver mappato il database interessato ( spiegato nella scorsa lezione su quest'argomento ), dobbiamo procedere alla lettura considerando due diverse opportunità. La prima quella di trovare il database vuoto, in questo caso significa che nessuna persona ha visitato il nostro web. La seconda possibilità invece è quella di trovare dei dati nel nostro database. È proprio in questo caso che andremo a leggere tutti i dati presenti scorrendoli uno dopo l'altro sino ad arrivare all'ultimo presente nell'elenco. Per facilità di lettura, ho distinto le righe assegnando colori di sfondo e colore del testo in modo alternato.
Cosa otterremo
Sul monitor è possibile ottenere due diversi visioni. La prima è quella più "drammatica" cioè quella di non aver avuto nessuna visita al sito web in questione. In tal caso apparirà a video la seguente schermata:
Se invece abbiamo avuto dei visitatori, la situazione cambierà in quanto il nostro database è stato aggiornato dal file index.asp. In tal caso a video possiamo osservare una situazione analoga alla seguente.
I dati che trovate presenti nella figura sovrastante, si riferiscono ai valori ottenuti durante la fase di sviluppo e di testing dello script.
Conclusioni
Nel file dell'allegato da scaricare, troverete le statistiche in modo completo (pagina index.asp + pagina mostra.asp + database statistiche.mdb).