27 messaggi dal 06 settembre 2002
Sto utilizzando per un contatore il codice

<code>

dim miosito,lun,referer
' qui sotto dobbiamo inserire il nome completo del nostro sito
miosito="http://www.miosito.it"
lun=len(miosito)
referer=request.servervariables("HTTP_REFERER")
Set Fil=CreateObject("Scripting.FileSystemObject")
Set inf=Fil.OpenTextFile(Server.MapPath("contatore.txt"),1,true)
testo=inf.ReadLine()
inf.Close
Set inf=Nothing
if session("visitato")&lt;&gt;"si" and left(referer,lun)&lt;&gt;left(miosito,lun) then
testo=testo+1
session("visitato")="si"
end if
Set out=Fil.CreateTextFile(Server.MapPath("contatore.txt"),true)
out.WriteLine(testo)
out.Close
Set out=Nothing
Set Fil=Nothing
response.write "Numero visite:"&testo

</code>


Da una breve indagine, mi risulta che i visitatori sono molti, ma molti di più di quelli segnati, avete idea da cosa possa dipendere tale anomalia?
Grazie
129 messaggi dal 03 ottobre 2001
Mmm... i casi sono due:

o il tuo codice non tiene traccia di tutti gli accessi, oppure il secondo sistema di controllo da te utilizzato, in qualche modo ne conteggia più dei dovuti.

Il tuo codice controlla lo stato della variabile Session("Visitato").
La session potrebbe non funzionare se i cookie del client sono disabilitati. Ma in questo caso dovresti addirittura registrare più accessi di quelli reali.

L'unica cosa che mi viene in mente è la seguente: dove hai posizionato il codice che hai postato? Se è solo nella tua home page si potrebbe spiegare il problema. Altre persone accedono direttamente a pagine interne del tuo sito, ma senza passare per la Home Page. Questo genera accessi, ma non vengono rilevati dal tuo codice. Per ovviare all'inconveniente potresti mettere il codice che hai postato nel file Global.asa
Lì verrebbe eseguito sempre, ad ogni nuovo accesso, in qualsiasi pagina o sottopagina del tuo sito.

Per il resto il tuo codice mi sembra corretto.

Comunque se vuoi semplificare le cose (in modo da evitare eventuali errori nascosti nel codice che hai postato)puoi provare a fare più semplicemente:

- Scrivi il nuovo codice nel file Global.asa
- Controlli se la variabile session("visitato") è già impostata a "si"
- se è già impostata non fare nulla.
- se non è impostata allora somma uno al contatore.
- Ora aggiorni la variabile session("visitato") al valore "si".

In questo modo eviti di controllare la stringa di referer (è una complicazione in più che non serve e che potrebbe contenere errori).
Tra l'altro (fai tu la prova) mi pare che il global.asa venga eseguito solo per il primo accesso. Quindi potresti addirittura aggiornare semplicemente il contatore senza neppure controllare la variabile Session("visitato"). Di questa ultima cosa non sono sicuro. Fai una prova e lo vedi subito.

Ciao
Nuvolari2



---------------------
Mi disse il Saggio: "La risposta è dentro di te... però è sbagliata"

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.