Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Contatore visite

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336

    Contatore visite

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    Ho corretto lo script in questo modo:


    '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

    'assegno alla variabile "lunghezza" il numero di sottochiavi del cookie
    lunghezza=split(Request.Cookies("conteggio"),"&")

    'verifico se il numero di sottochiavi è minore di 250. In caso contrario vuoto il cookie assicurandomi così almeno 250 pagine visitate prima di tornare ad incrementare le prime
    if UBound(lunghezza)>250 then
    Response.Cookies("conteggio") = ""
    end if


    'effettuo le operazioni di aggiornamento del database

    'e assegno al cookie il valore della data di oggi mettendo come scadenza il giorno dopo

    Response.Cookies("conteggio")("id"&id) = DATE

    Response.Cookies("conteggio").Expires = DateAdd("d",1,Date())

    end if

    Così dovrei evitare qualsiasi problema di numero di sottochiavi/dimensione cookie.

    Qualche "guru" potrebbe dirmi se concettualmente va bene o se sarebbe meglio fare in altro modo?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    336
    Su, forza, non ci credo che i frequentatori di questo forum non sappiano niente sull'utilizzo dei cookies

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.