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!