10 utentionline
(1) Calendario eventi in PHP
(1) Posizionamento nei Motori
(1) Pubblicare un sito
(1) home
(1) Guida CSS 2
(1) Tutorials SQL
(1) Trucchi headlines efficaci 3
(1) News con scadenza
(1) Statistiche del sito
Yappybook
searchengine
quicklinks
WebDesigner
Tutorials ASP
Tutorials XHTML
Tutorials Javascript
Tutorials HTML-CSS
Tutorials SQL
Tutorials PHP & MySQL
AJAX applicazioni web
Web Development
Template & Layout
Non solo Web :: Blog
Portfolio Lavori
Who is Yappy?
Benvenuto nella Newsletter
libririviste
Newsletter
Calendario motoGP 2007
newscorsi
FAQ & Domande
newscorsi
Web Designer gratuitoCorso Web Designer Gratuito per creare siti internet trucchi, consigli, esempi pratici e template per diventare un vero web designer.
Seo Extreme 2007
Al corso nazionale "Seo Extreme 2007" troverai le ultime tecniche e strategie di Posizionamento nei motori di ricerca. Parteciperai ad un corso di alto livello dedicato a chi vuole fare posizionamento...
Newsletter
Obiettivi e risultatiCiao,
ho atteso un po' a mandarti una nuova newsletter ma volevo essere sicuro di aver qualcosa da dire e qualcosa da offrire.
News n.13 - 27 febbraio 2007
In questa edizione ci sono nuovi tutorial e domande a cui ora è facilissimo trovare risposta come mettere il bottone Skype oppure una Google Map sul tuo sito internet.
Inoltre novità e corsi per diventare professionisti del web...
libririviste
Web Design Facile"Web Design Facile" di Davide Vasta è una guida pratica che conduce il lettore, passo per passo attraverso la realizzazione di un sito Internet: dalla creazione di un prototipo da mostrare al cliente fino al suo sviluppo definitivo.
WebDesigner 22
Web Designer Magazine n.22. Flash in prima linea, conoscere l'ultima versione del programma Macromedia. Inserire video Flash nelle vostre pagine. In primo piano "diventare Designer di successo".
tagclouds
Rental in Florence From A to Web n.5 Valentino Rossi Blog/Sito Giovanni Lombardo villa Montartino Creare un sito Web Proiettore autonomo Note Post-it Corso Avanzato di Web Marketin Obiettivi e risultati Annick Augier Art Blog AJAX applicazioni web MotoGP IRTA in Catalunya Macromedia Web Classes Tutorials HTML-CSS Strategie per un forumsyndicate
RSS 2.0Atom feed
CreativeCommons
Statistiche del sito
[04 Giu 2004]Come monitorare efficacemente le visite degli utenti e di comprendere l'intensità? e la frequenza delle visite nel nostro sito e di escludere le vostre visite con un opportuno cookie.
Come monitorare efficacemente le visite degli utenti e di comprendere l'intensità? e la frequenza delle visite nel nostro sito e di escludere le vostre visite con un opportuno cookie.
Si tratta di un monitoraggio completamente anonimo nel rispetto della privacy dell'utente del sito ma soprattutto totalmente personalizzabile in funzione delle esigenze dell'amministratore/realizzatore del sito.
Dovremo creare tre pagine dinamiche .ASP ottimizzate allo scopo:
[1] - il primo è un file log_admin.asp, che attivato dall'amministratore, crea un cookie della durata desiderata nel computer che normalmente utilizza per la navigazione. Lo scopo è quello di evitare che i suoi controlli interferiscano in qualche modo nelle statitiche del sito.
Difatti per siti "recenti" in cui il gestore/amministratore entra spesso per controllare il contenuto. Se i suoi accessi non vengono isolati influiscono sull'affluenza registrata e impediscono di valutarne l'effettivo successo.
Vediamo il codice contenuto al suo interno:
<%
utente=request.cookies("vostrosito.it")
response.cookies("vostrosito.it").Expires = dateAdd("d",1, Now())
if utente="" then
response.cookies("vostrosito.it") = "administrator"
response.write "Protezione attiva!<br> Per le prossime 24 ore puoi navigare nel sito da questo PC senza lasciare traccia nelle statistiche"
else
response.cookies("vostrosito.it")= "" response.write "Protezione non attiva, la navigazione verrà? monitorata."
end if %>
Lo scopo di questo file è di attivare/disattivare il cookie secondo le esigenze, nel caso si intenda controllare/correggere il sito o nel caso opposto qualora si intenda controllare il sistema di statistiche.
In caso di semplice aggiornamento e controllo del sito, l'attivazione della protezione comporta la creazione di un cookie al cui interno viene impostato il valore "administrator" durante la navigazione impedirà? di aggiornare il database con i nostri dati.
Se il file log_admin.asp viene richiamato una seconda volta, disattiva il cookie permettendo il monitoraggio della visita.
Il secondo elemento è un documento scrivi_stats.asp che ha il compito di monitorare la visita dell'utente, e le pagine visitate memorizzandole all'interno del database statistiche.mdb.
Questo documento verrà? "incluso" all'interno di ogni pagina del sito con il compito di aggiornare il contenuto del database durante tutta la visita dell'utente.
L'ultimo documento non meno importante da implementare è analisi_stats.asp il cui compito è quello di processare ed analizzare il contenuto del database al fine di garantire precise informazioni sul gradimento del sito, sulla durata delle visite e delle sezioni maggiormente visitate.
Al suo interno un semplice form vi permetterà? di scegliere il periodo/mese di riferimento.
L'operazione più delicata di tutto il procedimento è proprio la definizione del database statistiche.mdb e delle tabelle/campi necessari allo scopo.
La prima tabella "visitatori" permette di monitorare l'utente e le caratteristiche del suo PC attraverso le variabili di sistema:
| Campo | Descrizione | Note |
| id_utente | contatore | Chiave primaria, definisce un utente |
| cod_sessione | testo | contiene il codice univoco di sessione |
| cod_IP | testo | contiene il codice IP di connessione |
| periodo | Data in cifre | giorno di navigazione (gg/mm/aa) |
| inizio | Ora estesa | ora di inizio navigazione (hh.mm.ss) |
| durata | Ora estesa | fine navigazione (hh.mm.ss) |
| num_pagine | Numerico | definisce il numero di pagine visitate |
| elenco | memo | definisce l'elenco delle pagine visitate. |
Lo scopo di questa tabella è quello di memorizzare tutte le informazioni che occorre sapere sul nostro utente, verranno memorizzate durante l'accesso alla prima pagina, e conservate durante il procedere della navigazione. Alcune verranno aggiornate regolarmente come la durata della navigazione ed il numero di pagine visitate.
Ovviamente se avete bisogno di conservare altre informazioni circa il vostro utente non avete che da creare altri campi. Invariabilmente la tipologia delle informazioni che possiamo immagazzinare è di questi due tipi, una definita all'inizio della navigazione e costante, l'altra aggiornabile durante la consultazione del sito.
Accanto al monitoraggio dei vostri utenti, occorre monitorare le vostre pagine e la frequenza con cui vengono visitate attraverso la tabella "pagine".
| Campo | Descrizione | Note |
| id_pagina | contatore | Chiave primaria, definisce la pagina |
| indirizzo | testo | contiene l'indirizzo relativo alla pagina |
| periodo | Data in cifre | data di visita (gg/mm/aa) |
| num_visite | Numerico | definisce il numero di visite totalizzate |
Stavolta il campo aggiornabile è quello che contiene il numero di visite mentre gli altri verranno creati durante la rima visita alla pagina durante il periodo di riferimento di un mese.
Ora che la struttura del database è pronta per accogliere le informazioni da memorizzare, procediamo con la creazione del file scrivi_stats.asp.
Ricordiamo che questo documento verrà? agganciato ad ogni file appartenente al nostro sito ASP attraverso il comando:
L'inclusione ingloba nella nuova pagina ".asp" tutto il codice in modo che il server lo interpreti come un unico elemento.
Funzione per la durata della connessione
Il primo elemento da inserire nella pagina è la funzione myDurataTotale lo scopo sarà? quello di calcolare la durata dela connessione dell'utente attraverso il calcolo del numero totale di secondi passati tra l'inizio della connessione ed il momento delle richiesta di una nuova pagina sec_totali = datediff("s",my_inizio,my_fine).
Le operazioni successive permettono semplicemente di trasformare i secondi totali trascorsi in ore minuti e secondi secondo il formato hh.mm.ss analogo a quello scelto per i campi del database.
La funzione verrà? poi richiamata per aggiornare il campo durata all'interno della tabella "visitatori".
function myDurataTotale(my_inizio, my_fine)
sec_totali = datediff("s",my_inizio,my_fine)
myS = sec_totali mod 60
myM = ((sec_totali-myS) / 60) mod 60
myH = (((sec_totali-myS) / 60) - myM) / 60
myDurataTotale = myH & "." & myM & "." & myS
end function
utente=request.cookies("vostrosito.it")
if utente="" then
%>
Il ciclo if controlla che non sia attivo il cookie per disabilitare il monitoraggio. Difatti nel caso di un utente normale il cookie è vuoto quindi si procede al cotrollo, in caso contrario l'aggiornamento al database viene disattivato.
Sezione per le monitoraggio utenti
<%
DBfile=server.mapPath("statistiche.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & DBfile conn.Open DSNtemp
%>
stringa_SQL = "SELECT * FROM visitatori"
if session("utente")<>"" then
stringa_SQL = stringa_SQL + " WHERE cod_sessione='"& session("utente") &"'"
else
session("utente")=session.sessionID
session.timeout=15
end if
La prima parte provvede alla connessione con il database quindi definisce la stringa SQL (Structured Query Language) di richiesta dati in funzione della sessione attiva o meno.
Se session("utente") è già? attiva allora cerchiamo nel database il codice che contraddistingue l'utente; in caso contrario viene attivata una sessione della durata di 15 minuti.
Attenzione: la sessione dura 15 minuti dal momento in cui l'utente smette di interagire con il sito, perchè ha chiuso il browser oppure si è soffermato a lungo in una pagina.
Dopo i controlli che stabiliscono se è la prima pagina visitata dall'utente o se questi sta proseguendo alla consultazione del database, abbiamo l'apertuta del recordset ed un ulteriore controllo.
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open stringa_SQL, Conn, 3, 3
rs.PageSize = 1
rs.CacheSize = 1
totali= rs.PageCount
if totali=0 then
stringa_SQL = "INSERT INTO visitatori (cod_sessione,cod_IP,periodo,inizio,durata,num_pagine,elenco)"
stringa_SQL = stringa_SQL & " VALUES (" stringa_SQL = stringa_SQL & "'" & session("utente") & "',"
stringa_SQL = stringa_SQL & "'" & request.ServerVariables("REMOTE_ADDR") & "',"
stringa_SQL = stringa_SQL & "'" & date() & "',"
stringa_SQL = stringa_SQL & "'" & time() & "',"
stringa_SQL = stringa_SQL & "'00.00.00',"
stringa_SQL = stringa_SQL & "1,"
stringa_SQL = stringa_SQL & "'" & request.ServerVariables("URL") & "')"
else
num_pagine=rs("num_pagine")+1
elenco=rs("elenco") &";"& request.ServerVariables("URL")
inizio=rs("inizio")
stringa_SQL = "UPDATE visitatori"
stringa_SQL = stringa_SQL & " SET num_pagine =" & num_pagine & ","
stringa_SQL = stringa_SQL & " durata='" & myDurataTotale(inizio,time()) & "',"
stringa_SQL = stringa_SQL & " elenco='" & elenco & "'"
stringa_SQL = stringa_SQL & " WHERE cod_sessione ='" & session("utente") & "'"
end if
set rs = conn.execute(stringa_SQL)
set rs=nothing
Se la tabella è vuota (totali=0), allora siamo nel caso in cui l'utente sta visitando la sua prima pagina. In tal caso si procede con la memorizzazione del nuovo record (INSERT INTO visitatori).
Se invece la tabella contiene altri dati relativi all'utente attivo, si procede con l'aggiornamento dei dati (UPDATE visitatori).
Importante: un campo Data/ora deve essere inserito fra gli apici singoli all'interno della stringa SQL come mostrato sia nella fase di inserimento che nella fase si aggiornamento dei dati, con la condizione che le date condividano lo stesso formato.
Sezione per il monitoraggio pagine
Analogamente al caso precedente si procede al controllo se la pagina visitata è già? presente all'interno del database.
Si controlla nella fattispecie se la pagina è già? stata visitata in data odierna.
Da osservare come è possibile confrontare la data contenuta nel database e la data odierna, attraverso la richiesta:
Month(periodo)="& Month(now()) & " AND Year(periodo)=" & year(now()) & " AND Day(periodo)=" & Day(now())
in cui periodo è il campo presente nel database in cui è memorizzata la data di visita.
stringa_SQL = stringa_SQL + " WHERE indirizzo='"& request.ServerVariables("URL") &"' AND Month(periodo)="& Month(now()) & " AND Year(periodo)=" & year(now()) & " AND Day(periodo)=" & Day(now())
Set rs = Server.CreateObject("ADODB.Recordset")
rs.open
stringa_SQL, Conn, 3, 3
rs.PageSize = 1
rs.CacheSize = 1
totali= rs.PageCount
Se la tabella è vuota (totali=0), allora siamo nel caso in cui la pagina viene visitata per la prima volta nel mese corrente (Month(now())). In tal caso si procede con la memorizzazione del nuovo record (INSERT INTO pagine).
Se invece la tabella contiene altri dati relativi all'utente attivo, si procede con l'aggiornamento dei dati (UPDATE visitatori).
stringa_SQL = "INSERT INTO pagine (indirizzo,periodo,num_visite)"
stringa_SQL = stringa_SQL & " VALUES (" stringa_SQL = stringa_SQL & "'" & request.ServerVariables("URL") & "'," stringa_SQL = stringa_SQL & "'" & date() & "'," stringa_SQL = stringa_SQL & "1)"
else
num_visite=rs("num_visite")+1
stringa_SQL = "UPDATE pagine"
stringa_SQL = stringa_SQL & "
stringa_SQL = stringa_SQL & " WHERE indirizzo ='" & request.ServerVariables("URL") & "'"
end if
set rs = conn.execute(stringa_SQL)
set rs=nothing
Conn.Close
set conn=nothing
end if %>
Una volta concluso il controllo si procede alla chiusura della connessione e quindi al salvataggio del file scrivi_stat.asp.
L'operazione successiva è quella di estrarre i dati contenuti nel database la fine di realizzarne un'analisi vera e propria dei dati contenuti, ma lo vedremo nella fase II.

