Grazie Mems per la spiegazione...lo stato dell'arte attuale prevede l'utilizzo di un DB Access, del file global.asa e di uno script asp per il riepilogo delle statistiche:
- il DB Access è costituito dalla tbl_login (id, utente, password, dataregistrazione), dalla tbl_utente (id, idutente, nomeUtente, dataConnessione) e dalla tbl_sessioni (id, IPVisitatore, ContVisitatore, DataVisita).
Questo è il file global.asa:
codice:
<script LANGUAGE="VBScript" RUNAT="Server">
Sub Application_OnStart
strConn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("Mizushi.mdb")
application("users") = 0
Application("dbconn") = strConn
application.unlock
End Sub
Sub Application_OnEnd
End Sub
Sub Session_OnStart
Session("start") = Now
session.timeout = 1
set objconnvisite=Server.createobject("ADODB.Connection")
objconnvisite.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &Server.mappath("Mizushi.mdb")
Set objrsvisite = Server.CreateObject("ADODB.Recordset")
objconnvisite.Open
oggi=date()
ipvisit=request.servervariables("remote_addr")
'SQL quando data=oggi e l'ip è nuovo
strSQL="SELECT * FROM tbl_sessioni WHERE datepart('d',visitdate)="&datepart("d",oggi)&" AND datepart('m',visitdate)="&datepart("m",oggi)&" AND datepart('yyyy',visitdate)="&datepart("yyyy",oggi)&" AND visitorIP='"&ipvisit&"'"
objrsvisite.Open strSQL, objconnvisite, 3, 3
if (objrsvisite.EOF OR objrsvisite.BOF) then
'prima sessione odierna dell'ip ipvisit
objrsvisite.addnew
objrsvisite("visitdate")=oggi
objrsvisite("visitorip")=ipvisit
end if
objrsvisite("visitorcount")=objrsvisite("visitorcount")+1
objrsvisite.update
objrsvisite.Close
Set objrsvisite = Nothing
objconnvisite.Close
Set objconnvisite = Nothing
application.lock
application("users")=cint(application("users"))+1
application.unlock
End Sub
Sub Session_OnEnd
vecchio = ""
application.lock
vecchio = Session("utente") & "#^#" & session("id")&"|"
if instr(mid(application("utente"), instr(application("utente"), "#^#")+3), "#^#") > 0 then
Application("Utente") = replace(Application("Utente"), vecchio, "")
else
Application("Utente") = ""
end if
application("users")=cint(application("users"))-1
Application.UnLock
End Sub
</script>
Script statistiche:
codice:
<%
function fnFormattaData(data)
dim anno, mese, giorno
anno = right(Year(data), 2)
mese = right("00" & Month(data), 2)
giorno = right("00" & Day(data), 2)
fnFormattaData = giorno & "/" & mese & "/" & anno
end function
dim datetosearch
datetosearch = dateadd("d",-1,date())
dim datetosearch2
datetosearch2 = dateadd("m",-1,date())
condizioni="where datepart('d',visitdate)="& datepart("d",datetosearch)&" AND datepart('m',visitdate)="&datepart("m",datetosearch)&" AND datepart('yyyy',visitdate)="&datepart("yyyy",datetosearch)&")"
condizioni1="where datepart('d',visitdate)="&datepart("d",date())&" AND datepart('m',visitdate)="&datepart("m",date())&" AND datepart('yyyy',visitdate)="&datepart("yyyy",date())&")"
datepart('yyyy',visitdate)="&datepart("yyyy",datetosearch2)&") "
condizioni2="where datepart('m',visitdate)="&datepart("m",datetosearch2)&" AND datepart('yyyy',visitdate)="&datepart("yyyy",datetosearch2)&") "
set objconn=Server.createobject("ADODB.Connection")
objconn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &Server.mappath("Mizushi.mdb")
objconn.Open
strSQL="SELECT (select sum(visitorcount) from tbl_sessioni) as tot,"
strSQL=strSQL&"(select sum (visitorcount) from tbl_sessioni "&condizioni1&" as tot_oggi,"
strSQL=strSQL&"(select sum (visitorcount) from tbl_sessioni "&condizioni&" as tot_ieri,"
strSQL=strSQL&"(select sum (visitorcount) from tbl_sessioni "&condizioni2&" as mese_ieri,"
strSQL=strSQL&"(select top 1 visitorIP from tbl_sessioni order by visitID desc) as ultimo_ip"
'strSQL=strSQL&"(select sum(visitPage) from tbl_pagineViste) as Tot_page,"
'strSQL=strSQL&"(select sum(visitPage) from tbl_pagineViste "&condizioni1&" as page_oggi"
strSQL=strSQL&" from tbl_sessioni"
set rs=objconn.execute(strSQL)
'response.write strSQL
sSQL = "SELECT TOP 1 * FROM (SELECT VisitDate, sum(VisitorCount) AS Conta FROM tbl_sessioni GROUP BY VisitDate ORDER BY 2 DESC)"
set rs3 = objconn.execute(sSQL)
var = rs3("Conta")
bar = (fnFormattaData(rs3("VisitDate")))
set conn2=Server.createobject("ADODB.Connection")
conn2.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &Server.mappath("Mizushi.mdb")
conn2.Open
strsql="SELECT (select top 1 login1 from tbl_login order by id desc) as ultimo_reg,"
strSQL=strsql&"(select count(*) from tbl_login)as tot_utenti FROM tbl_login"
rs2=conn2.execute(strSQL)
%>
C'è bisogno di altri parametri per integrare le statistiche come ho scritto???
Ciao