Contare gli accessi

giovedì 22 novembre 2007 - 12.49

paolo973 Profilo | Senior Member

Data una index.aspx,
come conteggiarne gli accessi ?


Premetto che una volta conteggiato l'accesso, questo
non debba essere riconteggiato se mi sposto all'interno dello stesso sito web.

Cosa usare ? e come ?

ciao




pozzoli.samuele Profilo | Senior Member

>Data una index.aspx,
>come conteggiarne gli accessi ?

Con un'applicativo di statistiche!

>Premetto che una volta conteggiato l'accesso, questo
>non debba essere riconteggiato se mi sposto all'interno dello
>stesso sito web.

Allora... Ti metti sulla index. La prima volta che apri la pagina, setti una varibile della session. Se trovi la variabile settata non fai nulla. Se invece ti tocca settarla, allora incrementi il contatore delle visite.

>Cosa usare ? e come ?

Ovviamente il conto... Te lo devi tenere in un db!

Se poi vuoi, tramite gli http referrer, puoi tenere traccia di svariate cose del client che ti visita, tipo browser, s.o. ed altre cosucce carine. MA non è questo che hai chiesto...

Cmq, ad inizio di ogni pagina (perchè in un sito, tramite motore di ricerca, puoi entrarci non per la index!) ci metti il pacchettino che inizializza la session e incrementa il contatore.

Altra soluzione è quella di utilizzare global.asax, e l'evento onSessionStart... O simili.

Li dentro, puoi incrementare il contatore delle visite.

>ciao

Ciao!

paolo973 Profilo | Senior Member

Posso chiedere
un esempio ?

pozzoli.samuele Profilo | Senior Member

Ehm... Un esempio di cosa? Quale delle 4 scelte che ti ho proposto?

paolo973 Profilo | Senior Member

io direi l'esempio con le session.

paolo973 Profilo | Senior Member

niente proprio ?

pozzoli.samuele Profilo | Senior Member

in index.aspx

protected sub on_Load(byval sender as object, byval e as sytem.eventargs) handle page.load
if session("Log")="" then
session("Log")="Log"
'Codice di incremento del contatore
'Se è un upgrade su db, deve essere su db...
Imports System.Data
Imports System.Data.OleDb
' stringa di connessione
' provider OLE-DB per database SQL Server (E devi scriverla tu, desolated...)
Dim cnString As String = "Provider=SQLOLEDB;Data Source=Server; " & _
"Initial Catalog= Northwind;User ID=uid;Password=pwd;"
' istanza della Connection
Dim cn As New OleDbConnection(cnString)

cn.Open
Dim cmd As OleDbCommand = cn.CreateCommand

cmd.Connection = cn
cmd.CommandText = "UPDATE tabella SET nomecampo = 'valore'"
'dove valore può essere = "SELECT nomecampo + 1 AS nuovovalore FROM tabella"

'variabile che contiene il valore di ritorno del metodo
Dim result As Integer = cmd.ExecuteNonQuery()
cn.close

E con questa hai aggiornato il contatore delle visite a quella pagina.

GOOD LUCK!
end if
end sub

paolo973 Profilo | Senior Member

Dove inizializzare la session("Log") ?

pozzoli.samuele Profilo | Senior Member

if session("Log")="" then
session("Log")="Log"

Qui la inizi!

Non devi fare set o robe del genere! L'inizializzazione è automatica!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5