Ciao, mi è stato chiesto di creare un contatore di visite molto semplice per una pagina dinamica.
In pratica questa pagina riceve in querystring un id e devo registrare quante volte è stata visitata con un id, quante volte con un altro, ecc.
Addirittura mi era stato chiesto, per semplificare la cosa, di incrementare le visite tutte le volte che uno visitava la pagina, anche se questo comportava dati non univoci.
Per rendere la cosa un po' più funzionale e prendere dati abbastanza univoci, ho optato per questa soluzione che sfrutta i cookies (anche per non appesantire il server) e impedisce che una pagina venga conteggiata come visitata solo se non si è mai effettuato l'accesso negli ultimi 10 minuti (quindi se uno fa il refresh continuamente non vengono registrate come visite):
<%
'assegno alla variabile "id" il valore passato in querystring
id=request.querystring("id")
'controllo se il valore della chiave "id" (personalizzata con l'id passato in querystring) del cookie "conteggio" è diverso dalla data odierna
if Request.Cookies("conteggio")("id"&id)<>cstr(date() ) then
'se è diversa eseguo le operazioni sul database per incrementare il contatore relativo all'id specificato
'e assegno al cookie il valore della data di oggi mettendo come scadenza 10 minuti così da avere nuovi dati sulle visite ogni 10 minuti
Response.Cookies("conteggio")("id"&id) = Date
Response.Cookies("conteggio").Expires = DateAdd("n",10,Now())
end if
%>
Ho fatto una prova e ho visto che l'unico limite sta nel cookie che può contenere fino a 300 sottochiavi. Dopo la numero 300 non salva più, ma sarà difficile che qualcuno vada a visualizzare 300 pagine in 10 minuti.
Il dubbio che ho è il seguente:
L'unico errore che può dare è quello relativo al fatto che dopo 300 sottochiavi non salvi più in quel cookie o c'è il rischio che non salvi anche negli altri cookie e che dia problemi con le sessioni?

Rispondi quotando