Weiterleitung zur vorherigen Seite nach der Anmeldung
Beim Anmelden auf einer Website ist es oft praktisch, zu der Seite zurückgeleitet zu werden, die der Benutzer angezeigt hat bevor sie sich angemeldet haben. Diese Frage untersucht ein Codeproblem, bei dem Benutzer zu index.php statt zur beabsichtigten Seite umgeleitet werden.
Im bereitgestellten Beispielcode ermittelt das Skript login-check.php den Anmeldestatus und sendet eine Weiterleitungsparameter (p) zur Seite login.php. Anstatt Benutzer jedoch auf die gewünschte Seite zu leiten, werden sie zu index.php weitergeleitet.
Um dieses Problem zu beheben, wird die folgende Lösung vorgeschlagen:
-
Aktuelle Seite des Benutzers als Abfragezeichenfolge übergeben:
- Ändern Sie das Anmeldeformular so, dass es ein verstecktes Eingabefeld enthält, in dem die aktuelle Seite des Benutzers gespeichert wird. Dies kann durch die Übergabe von $_SERVER['REQUEST_URI'] im login.php-Skript erfolgen.
- Zum Beispiel, wenn ein Benutzer einen Artikel liest (comment.php?articleid=17) und versucht, ihn zu verlassen B. einen Kommentar, würde die URL wie folgt geändert:
login.php?location=comment.php?articleid=17
-
Handle „Location“ Query String in login-check.php:
- Überprüfen Sie im Skript login-check.php, ob $_POST['location'] ausgefüllt ist. Wenn ja, speichern Sie es in einer $redirect-Variable.
-
Weiterleitung basierend auf Anmeldestatus und Standort:
- Wenn die Anmeldung erfolgreich ist, prüfen Sie, ob in $redirect eine Weiterleitungs-URL verfügbar ist. Wenn ja, leiten Sie den Benutzer auf diese Seite weiter. Andernfalls leiten Sie sie zu index.php um.
- Wenn die Anmeldung fehlschlägt oder der Benutzer bereits angemeldet ist, behandeln Sie die entsprechenden Fehlermeldungen oder leiten Sie bei Bedarf um.
-
Weiterleitungs-URL validieren:
Es ist wichtig, den Wert $_GET['location'] zu validieren, bevor der Benutzer umgeleitet wird, um sicherzustellen, dass er nicht versucht, auf bösartige URLs zuzugreifen.
-
Kodieren Abfragezeichenfolge:
Verwenden Sie URL-Code, wenn Sie URLs als $_GET-Parameter übergeben, um Sonderzeichen richtig zu kodieren.
Durch die Implementierung dieser Änderungen werden Benutzer erfolgreich zu der Seite weitergeleitet, die sie zuvor angezeigt haben nach der Anmeldung, um ein nahtloses Benutzererlebnis zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWarum werde ich nach dem Anmelden zu index.php und nicht zu meiner vorherigen Seite weitergeleitet?. 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