Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
"dati strani" nel Contatore visite..
martedì 15 giugno 2010 - 10.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Superpippo1980
Profilo
| Junior Member
74
messaggi | Data Invio:
mar 15 giu 2010 - 10:31
Ciao a tutti.
Mi capita 1 cosa molto strana.
Nel mio sito web ho messo un contatore dei visitatori e un contatore per le pagine.
Per i visitatori ho fatto un semplice script che va ad incrementare di 1 il valore in un campo sul Session_Start del global.asax.
Per le visite, siccome tutte le pagine si appoggiano a un master, ho messo lo script che va ad incrementare li il contatore delle pagine.
I record sul db sono divisi per ora in modo da avere le statistiche per ora..
2 cose stranissime:
in alcuni casi il numero di visitatori èsuperiori alle pagine lette.
Tutte le notti tra le 4 e 5 ho tipo 400 visitatori ( e pochissime pagine lette, tipo 30 ) ...
il mio è un sito di amici...quindi alle 4 del mattino dormono tutti!!!!! :)
come può essere possibile secondo voi???
vi allego anche le 2 procedure :
public class Contatore
{
public static void NuovoVisitatore(string ConnString)
{
SqlConnection Conn = new SqlConnection(ConnString);
try
{
Conn.Open();
DateTime Data = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
int Ora = DateTime.Now.Hour;
SqlCommand Cmd = new SqlCommand("Update db_Visite set Numero=Numero+1 where Data=@Data And Ora=@Ora", Conn);
Cmd.CommandTimeout = 2;
Cmd.Parameters.Add("@Data", SqlDbType.DateTime, 8, "Data");
Cmd.Parameters.Add("@Ora", SqlDbType.Int, 4, "Ora");
Cmd.Parameters["@Data"].Value = Data;
Cmd.Parameters["@Ora"].Value = Ora;
int conta = Cmd.ExecuteNonQuery();
if (conta == 0)
{
Cmd = new SqlCommand("Insert into db_Visite values(@Data,@Ora,1)", Conn);
Cmd.Parameters.Add("@Data", SqlDbType.DateTime, 8, "Data");
Cmd.Parameters.Add("@Ora", SqlDbType.Int, 4, "Ora");
Cmd.Parameters["@Data"].Value = Data;
Cmd.Parameters["@Ora"].Value = Ora;
Cmd.ExecuteNonQuery();
}
Cmd.CommandText = "insert into db_Online values (GetDate())";
Cmd.ExecuteNonQuery();
if (DateTime.Now.Hour < 2)
{
Cmd.CommandText = "Delete from db_Online where Data<@Data";
Cmd.Parameters.Clear();
Cmd.Parameters.Add("@Data", SqlDbType.DateTime, 8);
Cmd.Parameters["@Data"].Value = DateTime.Now.Subtract(new TimeSpan(2, 0, 0));
Cmd.ExecuteNonQuery();
}
}
finally
{
Conn.Close();
}
}
public static void PaginaLetta(string ConnString)
{
SqlConnection Conn = new SqlConnection(ConnString);
try
{
Conn.Open();
DateTime Data = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
int Ora = DateTime.Now.Hour;
SqlCommand Cmd = new SqlCommand("Update db_PagineLette set Numero=Numero+1 where Data=@Data And Ora=@Ora", Conn);
Cmd.CommandTimeout = 2;
Cmd.Parameters.Add("@Data", SqlDbType.DateTime, 8, "Data");
Cmd.Parameters.Add("@Ora", SqlDbType.Int, 4, "Ora");
Cmd.Parameters["@Data"].Value = Data;
Cmd.Parameters["@Ora"].Value = Ora;
int conta = Cmd.ExecuteNonQuery();
if (conta == 0)
{
Cmd = new SqlCommand("Insert into db_PagineLette values(@Data,@Ora,1)", Conn);
Cmd.Parameters.Clear();
Cmd.Parameters.Add("@Data", SqlDbType.DateTime, 8, "Data");
Cmd.Parameters.Add("@Ora", SqlDbType.Int, 4, "Ora");
Cmd.Parameters["@Data"].Value = Data;
Cmd.Parameters["@Ora"].Value = Ora;
Cmd.ExecuteNonQuery();
}
}
finally
{
Conn.Close();
}
}
}
Gluck74
Profilo
| Guru
1.359
messaggi | Data Invio:
ven 2 lug 2010 - 16:58
dove e come usi questa classe contatore?
per quanto riguarda le 4 di notte..... non è raro che qualche motore di ricerca aggiorni i suoi "indici" proprio di notte. Potrebbe anche essere quello,
oppure qualche tuo amico, mentre aspetta di assaltare la citta vicina a "kingdoms of Camelot" proprio mentre il nemico dorme, viene a fare una visita sul tuo sito..... hi hi hi
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Torna su
Stanze Forum
Elenco Threads
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 !