Heim >Backend-Entwicklung >PHP-Tutorial >Wie können Benutzer nach der Anmeldung auf ihre vorherige Seite zurückgeleitet werden?
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 angemeldet ist haben zuvor gestöbert. Dies sorgt für ein nahtloses Benutzererlebnis und macht ein manuelles Zurücknavigieren überflüssig.
Eine Möglichkeit, diese Funktionalität zu implementieren, besteht darin, den aktuellen Standort des Benutzers über eine GET-Variable zu übergeben, wenn er zur Anmeldeseite weitergeleitet wird:
<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
Dadurch wird der Benutzer zu einer Anmeldeseite weitergeleitet, die ein verstecktes Eingabefeld mit der URL der vorherigen Seite enthält:
<code class="php">echo '<input type="hidden" name="location" value="'; if(isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
Im login-check.php-Skript, das die verarbeitet Anmeldeanforderung: Wenn die Anmeldung erfolgreich ist und der Standortparameter festgelegt ist, wird der Benutzer zur gespeicherten URL weitergeleitet:
<code class="php">if(isset($_POST['location'])) { $redirect = $_POST['location']; } // ... if(isset($_SESSION['id_login'])) { // if login is successful and there is a redirect address, send the user directly there if($redirect) { header("Location:". $redirect); } }</code>
Es ist jedoch wichtig, eine Validierung für den Parameter $_GET['location'] durchzuführen um zu verhindern, dass Benutzer auf schädliche Websites weitergeleitet werden. Verwenden Sie außerdem immer URL-Code, wenn Sie URLs als GET-Parameter übergeben, um spezielle URL-Zeichen korrekt zu verarbeiten.
Das obige ist der detaillierte Inhalt vonWie können Benutzer nach der Anmeldung auf ihre vorherige Seite zurückgeleitet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!