2017-09-05 5 views
0

Bevor Sie meine Frage lesen, bitte beachten Sie: Ich bin mir bewusst, dass HTTP_REFERER im Client-Browser gefälscht oder deaktiviert werden kann. Ich interessiere mich nicht für meinen Anwendungsfall, und der Browser, mit dem ich teste, übergibt auf jeden Fall Referer-Informationen.Ort: Header scheint nicht zu setzen HTTP_REFERER

Meine Frage lautet:

ich eine Datei namens page1.php erstellen:

<?php 
header("Location: page2.php"); 

ich eine zweite Datei page2.php genannt:

<?php 
echo "Referred by \"" . $_SERVER['HTTP_REFERER'] . "\""; 

dann von meinem Klienten Browser, den ich anrufe:

http://test-me.co/page1.php

und ich bin die resultierende Ausgabe von page2.php erwarten zu sein:

Geworben durch "http://test-me.co/page1.php"

sondern zeigt es ohne Referer Informationen wie folgt:

Bezeichnet von ""

Kann mir bitte jemand erklären, warum der Referer leer ist?

vielen dank!

Antwort

3

Der Referer enthält die letzte aktuelle Seite, die der Benutzer besucht hat. Wenn Sie URL example.com/a.html in Ihre Adressleiste eingeben, die sofort zu /b.html umleitet, dann haben Sie nie wirklich a.html besucht; und davor gibt es keine Seite, von der du "kommst".

Um eine referer zu sehen nach einer Umleitung der Umleitung Seite von irgendwo verbunden gewesen sein muss, das heißt

a.html --link--> b.html --redirect--> c.html 

Dann in c.html Sie a.html als referer sehen würde. Wenn Sie diese Kette unter b.html starten, gibt es keinen Referer.