2010-03-17 16 views
7

Ciao Ho provato quanto segue per trovare il referrer in MSIE/IE7 e IE8 ma il suo ritorno ogni volta vuoto;Referrer HTTP e IE7 e IE8

PHP:

<? 
echo $_SERVER['HTTP_REFERER']; 
?> 

JavaScript:

document.write('Thanks for visiting from ' + document.referrer); 

Fa qualsiasi so quale sia il problema potrebbe essere che sto usando referering document.location da una pagina in un altro dominio e il lavoro bene con tutti gli altri browser meno MSIE.

Qualsiasi aiuto sarebbe fantastico!

risposta

5

Il HTTP Referer header non è richiesto dal protocollo HTTP:

  • Viene inviato solo come un informazioni
  • il browser può, o non può, inviarlo (il che spiegherebbe perché sei ottenerlo con alcuni browser e non ottenerlo con altri)
  • Alcuni firewall/software di sicurezza potrebbero rimuoverlo, suppongo, in alcune situazioni (ho visto che, alcuni anni fa, se ricordo bene ly)
  • Può essere forgiato facilmente dall'utente

Il che significa che non si può contare sul Referer per la vostra applicazione: si può utilizzare per fornire un certo functionnality additionnal, ma l'applicazione deve lavorare anche se non è lì, o non è corretto.

+1

Qualcuno sa circostanze specifiche perché IE8 o IE7 avrebbero rifiutato di inviare un referrer quale è stato indicato? considera un browser predefinito nessun firewall. – cocacola09

+0

@ cocacola09 Questo sito afferma che si tratta di un bug http://webbugtrack.blogspot.de/2008/11/bug-421-ie-fails-to-pass-http-referer.html – DanFromGermany

1

HTTP_REFERRER non funziona nel browser IE funziona correttamente per tutti i browser come mozilla, safari, opera ecc. Il metodo Referrer non riconosce in IE restituirà null quando lo applichiamo per IE. In realtà l'uso di HTTP_REFERRER non è un criterio giusto, perché non possiamo aspettarci che funzioni o no in quanto non è un HEADER HTTP standard.

+0

'HTTP_REFERER', non' HTTP_REFERRER '. – DCShannon

-2

Ecco un hack si potrebbe provare:

var referLink = document.createElement('<a href="' + theUrl + '" target="' + theWindow + '"></a>'); 
    document.body.appendChild(referLink); 
    referLink.click(); 
Problemi correlati