Ich benutze $_SERVER['HTTP_REFERER'];
, um die Referer-URL zu bekommen. Es funktioniert wie erwartet, bis der Benutzer auf eine andere Seite klickt und der Referer zur letzten Seite wechselt.
Wie speichere ich die ursprüngliche verweisende URL?
Ich benutze $_SERVER['HTTP_REFERER'];
, um die Referer-URL zu bekommen. Es funktioniert wie erwartet, bis der Benutzer auf eine andere Seite klickt und der Referer zur letzten Seite wechselt.
Wie speichere ich die ursprüngliche verweisende URL?
Antworten:
Speichern Sie es entweder in einem Cookie (wenn es für Ihre Situation akzeptabel ist) oder in einer Sitzungsvariablen.
session_start();
if ( !isset( $_SESSION["origURL"] ) )
$_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
http_referer
vorhanden ist, da dies häufig nicht der Fall ist, da dies zu einem Fehler "Undefinierter Index" führen kann.
Wie Johnathan vorgeschlagen hat, möchten Sie es entweder in einem Cookie oder in einer Sitzung speichern.
Der einfachere Weg wäre die Verwendung einer Sitzungsvariablen.
session_start();
if(!isset($_SESSION['org_referer']))
{
$_SESSION['org_referer'] = $_SERVER['HTTP_REFERER'];
}
Wenn Sie dies oben auf die Seite setzen, können Sie immer auf den ersten Referer zugreifen, von dem der Site-Besucher geleitet wurde.
Die Verwendung von Cookies als Repository für Referenzseiten ist in den meisten Fällen viel besser, da Cookies den Verweis so lange beibehalten, bis der Browser geschlossen wird (und auch dann, wenn der Browser-Tab geschlossen wird). Wenn der Benutzer die Seite also offen gelassen hat, sagen wir mal Vor den Wochenenden und nach ein paar Tagen wieder dort, wird Ihre Sitzung wahrscheinlich abgelaufen sein, aber Cookies sind immer noch da.
Fügen Sie diesen Code am Anfang einer Seite ein (vor jeder HTML-Ausgabe, da Cookies nur vor einem Echo / Druck richtig gesetzt werden):
if(!isset($_COOKIE['origin_ref']))
{
setcookie('origin_ref', $_SERVER['HTTP_REFERER']);
}
Dann können Sie später darauf zugreifen:
$var = $_COOKIE['origin_ref'];
Zusätzlich zu dem, was @pcp über das Escapezeichen von $ _SERVER ['HTTP_REFERER'] vorgeschlagen hat, möchten Sie bei Verwendung von Cookies möglicherweise auch $ _COOKIE ['origin_ref'] bei jeder Anforderung maskieren.
Versuche dies
(isset ($_SERVER['HTTP_CLIENT_IP']) ?
$_SERVER['HTTP_CLIENT_IP'] :
(isset ($_SERVER['HTTP_X_FORWARDED_FOR']) ?
$_SERVER['HTTP_X_FORWARDED_FOR'] :
$_SERVER['REMOTE_ADDR']
)
)
IP ADDRESS
aber in dem Beitrag geht es um eine REFERER
Webseite, die zu der fraglichen führte.