Heim  >  Artikel  >  Backend-Entwicklung  >  Wie leite ich Benutzer nach der Anmeldung zur vorherigen Seite zurück?

Wie leite ich Benutzer nach der Anmeldung zur vorherigen Seite zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-02 04:47:02226Durchsuche

How to Redirect Users Back to the Previous Page After Login?

Weiterleitung zur vorherigen Seite nach der Anmeldung

Wenn sich ein Benutzer auf einer Website anmeldet, ist es oft wünschenswert, ihn zurück auf die Seite umzuleiten, auf der er sich angemeldet hat Dies gewährleistet ein nahtloses Surferlebnis und ermöglicht Benutzern, ihre Aufgaben fortzusetzen.

Um diese Umleitung zu erreichen, besteht ein gängiger Ansatz darin, die aktuelle Seiten-URL des Benutzers als Abfragezeichenfolgenparameter in zu übergeben Anmeldeformular. Beispiel:

<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>

Dieser Code fügt einen „Standort“-Parameter zur URL der Anmeldeseite hinzu. Der Wert dieses Parameters ist die URL der aktuellen Seite, codiert, um sicherzustellen, dass sie mit URL-Parametern kompatibel ist.

Fügen Sie im Anmeldeformular ein verstecktes Eingabefeld hinzu, um den Parameter „Standort“ zu speichern:

<code class="php">echo '<input type="hidden" name="location" value="';
if (isset($_GET['location'])) {
    echo htmlspecialchars($_GET['location']);
}
echo '" />';</code>

Dieses Eingabefeld wird ausgefüllt, wenn das Anmeldeformular gesendet wird.

Überprüfen Sie im Skript login-check.php, ob der Parameter „location“ in den POST-Daten vorhanden ist. Wenn dies der Fall ist, speichern Sie den Wert in einer $redirect-Variable:

<code class="php">$redirect = NULL;
if ($_POST['location'] != '') {
    $redirect = $_POST['location'];
}</code>

Wenn die Anmeldung erfolgreich ist, leiten Sie den Benutzer zur $redirect-URL statt zum Standardziel (z. B. „index.php“) um. :

<code class="php">if (isset($redirect)) {
    header("Location:" . $redirect);
} else {
    header("Location:login.php?p=3");
}</code>

Sicherheitsüberlegungen

Es ist wichtig, den Parameter $_GET['location'] zu validieren, bevor der Benutzer umgeleitet wird. Dadurch wird verhindert, dass böswillige Benutzer Benutzer auf schädliche URLs umleiten. Eine Möglichkeit, den Parameter zu validieren, besteht darin, zu prüfen, ob er mit dem Domainnamen der Website beginnt.

Das obige ist der detaillierte Inhalt vonWie leite ich Benutzer nach der Anmeldung zur vorherigen Seite zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn