Salve ragazzi,
ho realizzato un contatore di accessi ad un sito, che fra l'altro esegue la distinzione fra un accesso unico ed un reload tramite l'identificazione dell'IP del client.
Se processo la pagina da localhost (cioè digitando http://localhost/stat.asp) tutto funziona perfettamente, la cosa inspiegabile è perckè quando digito l'indirizzo IP del mio pc seguito dalla asp (cioè XXX.XXX.XXX.XXX/stat.asp) la pagina asp non viene + processata e dopo un pò compare il messaggio di errore "tempo scaduto". Vi digito la parte nevbralgica dello script, quella ke secondo me causa questa differenza di esecuzione:
...
bolAlreadyExists = FALSE
str_ip = Request.ServerVariables("REMOTE_ADDR")
DO WHILE NOT (objrs.EOF OR bolAlreadyExists)
IF (StrComp(objrs("ip"), str_ip, vbTextCompare) = 0) THEN ' CONFRONTO GLI IP DI OGGI SUL DB CON QUELLO DELL'OSPITE
bolAlreadyExists = TRUE ' L'IP HA GIA' VISITATO OGGI, QUINDI E' UN RELOAD
END IF
LOOP
...
...
<% str_mese= Right("0" & Month(Now),2)
str_sql="SELECT * FROM " & str_mese & " WHERE day=" & day(now) ' IN STR_MESE SELEZIONO LA TABELLA CORRISPONDENTE AL MESE
set objrs=server.createobject("adodb.recordset")
objrs.open str_sql, str_conn, 1, 3
int_reali=objrs("reali")
int_reload=objrs("reload")
IF bolAlreadyExists THEN ' SE L'UTENTE NON E' NUOVO ALLORA INCREMENTO DI 1 INT_RELOAD E FACCIO L'UPDATE
int_reload=int_reload+1
objrs("reload")=int_reload
objrs.update
ELSE
int_reali=int_reali+1 ' SE L'UTENTE E' NUOVO ALLORA INCREMENTO DI 1 INT_REALI E FACCIO L'UPDATE
objrs("reali")=int_reali
objrs.update
END IF
objrs.close
set objrs=nothing
%>
<% str_conn.close
set str_conn= nothing
response.end
%>
Come dicevo secondo me la colpa è di Request.ServerVariables("REMOTE_ADDR")...qualcuno sa darmi una spiegazione o un consiglio? Grazie![]()

Rispondi quotando
