PHP wp_get_referer setzt keinen Wert (manchmal)

Lesezeit: 3 Minuten

Ich arbeite an etwas Komplexerem als diesem, aber ich habe das Problem auf einen sehr einfachen PHP-Code eingegrenzt, der auf einer Website funktioniert, aber nicht auf anderen. Ich möchte PHP verwenden, um wp_get_referer zu verwenden, und es dann zumindest auf dem Bildschirm ausdrucken. (Ich bin viele Schritte weitergekommen und habe tatsächlich das größere Ziel erreicht, das ich wollte, aber nur auf einer Site.) Dies funktioniert gut auf meiner eigenen Site, die ich nur als Testgelände verwende, aber ich kann es anscheinend nicht es auf einer der realen Live-Sites zum Laufen zu bringen, auf denen ich es tatsächlich implementieren möchte. Der wp_get_referrer scheint überall sonst keinen Wert zu haben, selbst wenn ich von einer Testseite direkt dorthin verlinke. Es sollte diese URL genauso ausdrucken wie auf meiner Testseite, aber das ist nicht der Fall.

Hier ist der zusätzliche Basiscode, auf den ich ihn eingegrenzt habe (verlinkt von http://pixelmixology.com/test.htmdies druckt die verweisende URL oben):

    <?php
         $refersource = wp_get_referer();
         echo $refersource;
    ?>

Eine andere Seite, die dasselbe WP-Theme verwendet, mit derselben Codeeingabe an derselben Stelle in der header.php-Datei, funktioniert nicht. Wenn ich dem Link unter folge http://pixelmixology.com/test2.htmwird der Referrer auf dieser Website nicht gedruckt.

Irgendwelche Ideen, was diese Art von Inkonsistenz verursachen könnte? Ich bin eine Art PHP-Neuling und würde mich über jede Hilfe freuen.

  • Der Referrer ist ein Browser und darf nicht gesendet (oder gefälscht) werden, man kann sich NIE darauf verlassen

    Benutzer6763587

    12. September 2016 um 2:35 Uhr


  • Der Referrer ist im ersten Beispiel die Seite, von der ich auf meiner eigenen Domain verlinkt habe (und Sie können sehen, wie sie im Test auftaucht). Ich verstehe nicht ganz, worauf Sie hinauswollen, wenn es sich in anderen Fällen um den Browser selbst (?) handelt. Warum sollte es nicht in genau demselben Browser und mit genau derselben Methode gesendet werden? Ich verstehe, dass einige Websites möglicherweise die verweisende URL fälschen (oder diese Daten nicht senden), aber ich mache das hier nicht.

    Benutzer6239063

    12. September 2016 um 17:00 Uhr


  • Entschuldigung, das fehlende Wort sollte lauten: “Der Referer ist der Browser einstellen

    Benutzer6763587

    12. September 2016 um 20:25 Uhr

  • Ich verstehe, dass es vom Browser festgelegt wird. Ich hatte nur auf einen Einblick gehofft, warum es manchmal nicht erkannt werden konnte, wenn die verweisende URL von derselben Website, in demselben Browser und mit demselben Code gesendet wurde. Ich habe auf den anderen Seiten keine WP-Plugins installiert, von denen ich denke, dass sie die Referrer-Daten blockieren würden; Warum sollten andere Websites in einem so einfachen Szenario Probleme haben, meine verweisende URL zu erkennen?

    Benutzer6239063

    12. September 2016 um 21:02 Uhr

  • “Verweisende URL wurde von derselben Seite gesendet” Nein, sie wird vom Browser gesendet, die Seite hat nichts damit zu tun. Sie scheinen immer noch zu denken, dass es ein Problem mit Ihrem Code ist, wenn es nichts damit zu tun hat.

    Benutzer6763587

    12. September 2016 um 21:09 Uhr


Für alle anderen, die auf dieses Problem stoßen, verwenden Sie $_SERVER[‘HTTP_REFERER’] anstelle von wp_get_referer(). Ich bin mir nicht sicher warum, aber es funktioniert, wenn der andere manchmal nicht funktioniert. Hoffentlich erspart dies jemand anderem die gleichen Stunden des Versuchs, Irrtums und der Verwirrung.

Könnte Teil der Erklärung sein: wp_get_referer() gibt “False” zurück, wenn Referrer = aktive URL.

1426870cookie-checkPHP wp_get_referer setzt keinen Wert (manchmal)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy