PDA

Visualizza la versione completa : HTTP_REFERER come funziona?


kallo
05-09-2004, 00:27
Premetto che ignoro totalmente il Perl ma dalla mia ignoranza ho ricavato questo mini script messo nella simpatica cartella cgi-bin e chiamato c.pl



open (FILE, "+>> D:/Inetpub/webs/rendonit/public/counter/tuo_file.txt") || die "Non posso scrivere su tuo_file.txt: $!\n";
flock (FILE,2);
print FILE "ip $ENV{REMOTE_ADDR}|referrer $ENV{HTTP_REFERER}|$ENV{'HTTP_USER_AGENT'}|$ENV{'R EQUEST_URI'}\n";
flock(FILE,8);
close FILE;


Ho inserito nella mia pagina index.html il seguente codice



<script type="text/javascript" language="JavaScript" SRC="http://www.rendon.it/cgi-bin/c.pl"></script>



il mio desiderio sarebbe quello di salvare nel file i referer della pagina index.html ho copiato il codice javascript di shinystats che include con il javascript il cgi nella pagina html.
Purtroppo però non funziona perchè lo script .pl vede sempre come referer index.html
Non so quanto sono stato confusionario nell'esporre faccio uno schemino riassuntivo:
Vorrei:
google -> index mio sito -> su file(referer):google
Ottengo:
google -> index mio sito -> su file(referer):index mio sito

Non posso usare le estensioni shtml

Qualcuno può aiutarmi? :)

:ciauz:

shishii
05-09-2004, 15:29
Ciao,

ovvio... colui che richiama lo script è la pagina html in cui hai messo <script...>.

Per evitare ciò senza usare shtml devi o fare creare la pagina allo script stesso dopo che ha catturato il referrer, oppure raccogliere il referrer tramite il Js e passarlo allo script, ad esempio così:

<script type="text/javascript" language="JavaScript">
var f=document.referrer;
var sc="http://www.tuosito.com/cn/cgi-bin/tuoscript.pl?referre="+f+"</a>";
document.write(sc);
</script>

Loading