Kennt jemand eine Lösung wie ich den Referer überprüfen kann?
Ich brauche das, weil ich überprüfen möchte, ob der Benutzer von einer bestimmten URL kommt, und wenn ja, möchte ich dem Benutzer einige zusätzliche “Klicks” geben, um einen höheren Rang zu erreichen. So etwas wie ein kleines Affiliate-System.
Seien Sie sich bewusst – der Referrer ist davon abhängig, dass der Kunde ihn wahrheitsgemäß angibt … er ist nicht im “wahren” Sinne zuverlässig.
– wallig
16. August 2017 um 12:27 Uhr
Thibault Dumas
Es scheint, als würde dies das tun, wonach Sie suchen:
Ich habe das ausprobiert, aber das gibt immer “null” zurück
– PHPprogrammer42
16. August 2017 um 12:37 Uhr
@PHPprogrammer42 Dann wird wahrscheinlich kein Referer gesendet.
– Jan
16. August 2017 um 12:38 Uhr
Dies wird vom Benutzeragenten festgelegt. Nicht alle Benutzeragenten werden dies festlegen, und einige bieten die Möglichkeit, HTTP_REFERER als Funktion zu ändern. Kurz gesagt, es kann nicht wirklich vertraut werden.
– Thibault Dumas
16. August 2017 um 12:43 Uhr
mhh.. also was würden Sie tun, um zu überprüfen, ob der Benutzer auf einen Link geklickt hat wie: “meinewebsite.com/unicorn/1111111 — Ohne von meiner Website selbst zu kommen? So kann ich dem “Thread” mit der ID 1111111 einige zusätzliche Klicks geben
Request::header('referer');
Request::server('HTTP_REFERER'); // same thing as above
Der Grund, den Sie bekommen Undefined index: HTTP_REFERER liegt daran, dass nicht alle Anfragen a haben HTTP_REFERER Header, nur die meisten Anfragen, die von anderen Websites kommen. Wenn Sie eine Website direkt mit der URL besuchen, senden Sie keine HTTP_REFERER Header.
Sie sollten also zuerst prüfen, ob der Header gesetzt ist.
if (!isset($_SESSION["origURL"]) && array_key_exists('HTTP_REFERER', $_SERVER))
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
LucianDex
Wir können den Helfer url() verwenden
url()->previous();
Wenn Sie zu der Seite zurückkehren möchten, die die Anfrage initialisiert, schreiben wir einfach dies (normalerweise in der Steuerung):
Der Header Referrer Policy ist der Schlüssel hinter einem solchen Problem. Ich hatte ein Problem mit der Referrer-URL in meiner Laravel + NGINX-Anwendung und versuchte alle möglichen Wege, um das durch den in den obigen Kommentaren erwähnten Code zu beheben (zurück, zurück, Header usw.), fand aber schließlich diesen Artikel, um mein Wissen zu erweitern, bevor ich mein Problem behebt passend.
lofihelsinki
Es ist Sache des Clients, die Referrer-Informationen im Header der HTTP-Anforderung zu senden.
Wenn also der Client (Browser, App usw.) den Referrer nicht sendet, steht er dem Server in den Request-Headern nicht zur Verfügung. Ich schätze, die WhatsApp-App hat das Senden des Referrers deaktiviert, also gibt es keine Möglichkeit, ihn zu bekommen.
Bei einigen Browsern kann das Senden der Referrer-Informationen in den Einstellungen oder mit einer Erweiterung abgeschaltet werden. Es ist auch leicht zu fälschen curl zum Beispiel, so dass es nicht als Sicherheitsmaßnahme verwendet werden kann.
Weitere Informationen in meiner Antwort hier: https://stackoverflow.com/questions/49050268/does-document-referrer-equal-the-http-referer-header/49050494
Wenn Sie sich nicht sicher sind, welcher Client den Referrer sendet, können Sie dies einfach mit JavaScript überprüfen (Referrer wird hier anders geschrieben als der HTTP-Header, um die Verwirrung zu erhöhen):
console.log(
document.referrer
);
14406700cookie-checkWie bekomme ich den http-Referer in Laravel?yes
Seien Sie sich bewusst – der Referrer ist davon abhängig, dass der Kunde ihn wahrheitsgemäß angibt … er ist nicht im “wahren” Sinne zuverlässig.
– wallig
16. August 2017 um 12:27 Uhr