Newsgroup: it.comp.www.asp
Titolo: [Asp.NET] Statistiche sito

Ho creato una procedura che mi raccoglie svariate informazioni sull'utente
che si collega a un sito.
Il mio dubbio č: dove la metto questa procedura nella routine Sub Page_Load
della Home o nel Global.asax? In caso la riposta sia il global.asax, in
quale routine?
Grazie.

 wrote in message
news:18ng9.6342$eG6.1...@twister1.libero.it...



Moderatore di it.comp.www.asp
http://www.aspitalia.com/
 Enjoy the .NET community!
http://www.dev2dev.it/
 La rete ha connesso nuove particelle!

 essere preciso :)
Cioč?

 
http://www.ugidotnet.org/workshops/workshops.aspx
Peccato, mi piacerebbe partecipare, ma non posso (ho già la fiera COM.P.A. a
Bologna, in occasione della quale devo pubblicare il sito che sto
ultimando.)
Comunque proprio in questi giorni ho visto il sito. Ottimo lavoro.

 Il mio dubbio è: dove la metto questa procedura nella routine Sub


 Cioè?
cioe' controlli se l'IP è già presente nel db nell'arco delle ultime tot
ore.
molto probabilmente è una persona che è tornata a farti visita e quindi
potresti segnartelo da q.che parte, se ti interessa questo dato. piuttosto
che non conteggiare il nuovo ingresso se ripetuto nell'arco di mezz'ora ed
aggiornare a quel punto la sola data di uscita dal sito.


 ore.
smpre, purtroppo, considerando il fatto che l'IP rilevato potrebbe essere
qllo di un proxy (o di un generico gateway) e quindi riferirsi a diversi
utenti: spesso LAN con decine di macchine "escono" con 1 o 2 IP... Potresti
aiutarti con un cookie "applicativo", ma l'utente potrebbe averli
disabilitati, nel qual caso ti "scordi" anche le sessioni (a meno di non
aver abilitato qlle "cookieles"), e poi... Che fatica fare il Web Developer:
se rinasco mi cerco qualcosa di meno turbolento... :-))
A.
UGIdotNET - 
http://www.ugidotnet.org


A parte il fatto che non ho  capito cos'è che mi proponi come scambio.... ma
fa lo stesso...
Per raccogliere i dati mi sono creto una tabella nel database (nel mio caso
access 2000, sigh! :(() chiamata tblAccessi
con la store procedure per aggiornarla. (spAddAccesso, spUpdateFineAccesso)
Nel globa.asax ho messo scritto queste due routine:
Sub Session_Start(Sender As Object, E As EventArgs)
        ' Raccoglie le informazioni sull'utente e le salva nella tabella
tblAccessi
        Dim objTP as New TerrediPianura.TerrediPianura
        Dim strUserAgent as String = Request.UserAgent
        Dim strHostAddress as String = Request.UserHostAddress
        Dim strHostName as String = Request.UserHostName
        Session("DataOraConn") = DateTime.Now()
        objTp.AddAccesso(Session("DataOraConn"), strUserAgent,
strHostAddress, strHostName)
        objTP.Dispose
    End Sub
    Sub Session_End(Sender As Object, E As EventArgs)
         ' Scrive la data e l'ora della fine della sessione
        Dim objTP as New TerrediPianura.TerrediPianura
        objTp.UpdateFineAccesso(Session("DataOraConn"))
        objTP.Dispose
    End Sub
E nella dll che mi fa girare il tutto ho scritto la routine per l'accesso al
db......
Public Sub AddAccesso(Data as Date, strUserAgent as String, strHostAddress
as String, _
                strHostName as String)
        ' Recupera le informazioni sull'utente collegato
            Dim objCmd as New OleDbCommand("spAddAccesso", objConn)
            objCmd.CommandType = CommandType.StoredProcedure
            Dim OraConnessione as Date = DateTime.Now
            Dim objParam as New OleDbParameter("@Inizio", OleDbType.Date)
            objParam.Value = Data
            objCmd.Parameters.Add(objParam)
            objParam = New OleDbParameter("@TipoBrowser", OleDbType.BSTR)
            objParam.Value = strUserAgent
            objCmd.Parameters.Add(objParam)
            objParam = New OleDbParameter("@DNSName", OleDbType.BSTR)
            objParam.Value = strHostName
            objCmd.Parameters.Add(objParam)
            objParam = New OleDbParameter("@UserHostAddress",
OleDbType.BSTR)
            objParam.Value = strHostAddress
            objCmd.Parameters.Add(objParam)
            Try
                objConn.Open
                objCmd.ExecuteNonQuery
            Catch ex As Exception
                throw ex
            End Try
        End Sub
        Public Sub UpdateFineAccesso(Data as Date)
        ' Scrive l'ora in cui l'utente collegato chiude la sessione
            Dim objCmd as New OleDbCommand("spUpdateFineAccesso", objConn)
            objCmd.CommandType = CommandType.StoredProcedure
            Dim objParam as New OleDbParameter("@Fine", OleDbType.Date)
            objParam.Value = DateTime.Now
            objCmd.Parameters.Add(objParam)
            objParam = New OleDbParameter("@Inizio", OleDbType.Date)
            objParam.Value = Data
            objCmd.Parameters.Add(objParam)
            Try
                objConn.Open
                objCmd.ExecuteNonQuery
            Catch ex As Exception
                throw ex
            End Try
        End Sub
....tutto qua!
Forse ti aspettavi qualcosa d più, ma per adesso mi va bene così..... se mi
chiederanno più info vedrò di ampliare la cosa...
Ciao!