Frage

Ich erstelle eine Website und auf einer bestimmten Seite, bin zu wollen, den Benutzer zurück auf die vorherige Seite zu senden. Ich bin ziemlich neu in PHP / HTML und haben einige vorhandenen Code für Ideen und Hilfe im Einsatz.

Der vorhandene Code verwendet die folgende Methode:

if (! empty($HTTP_REFERER)) 
{
    header("Location: $HTTP_REFERER");
} else 
{
    header("Location: $CFG->wwwroot");
}

Allerdings, wenn ich diesen Code verwenden wird die HTTP_REFERER immer als leer und die auf die Stammseite umgeleitet Benutzer behandelt. Offensichtliche Mängel in diesem Code?

War es hilfreich?

Lösung

Sie müssen verwenden:

$_SERVER['HTTP_REFERER']

Andere Tipps

Verlassen Sie sich nicht auf dem Referrer ein gültiges oder gar nicht leeres Feld zu sein. Menschen können wählen, nicht dieser Satz für diese Variable auf die leere Seite der IF-ELSE-Klausel alle Kontrollen verlassen haben, gehen.

Sie können dagegen wappnen, indem er entweder in der URL oder POST-Parameter entlang eines Parameters zu senden, die einen Wert halten würde, dass Sie den Benutzer zurück umleiten können.

isset ($ _ SERVER [ 'HTTP_REFERER'])? $ _SERVER [ 'HTTP_REFERER']: '';

Wenn Sie die Person zurück zur vorherigen Seite senden wollte und nutzen, unabhängig von der Referrer richtig eingestellt ist, können Sie einen GET-Parameter an die URL (oder POST) anhängen .. Sie müssen die URL kodieren. . So etwas wie

http://www.domain.com.au/script.php?return=http%3a%2f%2fwww.domain.com.au%2fthis-is-where-i-was % 2f

Sie können PHP verwenden urlencode() Funktion.

Beachten Sie auch, dass der Referer-Header leer sein könnte oder fehlt sowieso, also sollten Sie gar nicht auf sie verlassen ..

Sie sollten verwenden

$_SERVER['HTTP_REFERER']

schauen jedoch bei der register_globals Konfiguration in der php.ini, sollte es aus Sicherheitsgründen abgeschaltet werden. Sie können mehr über PHP Manual Website .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top