Redirection vers la page précédente après la connexion
Lorsqu'un utilisateur se connecte à un site Web, il est souvent souhaitable de le rediriger vers la page qu'il parcouraient auparavant. Cela garantit une expérience utilisateur transparente et élimine le besoin de revenir manuellement en arrière.
Une façon d'implémenter cette fonctionnalité consiste à transmettre l'emplacement actuel de l'utilisateur via une variable GET lors de sa redirection vers la page de connexion :
<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
Cela enverra l'utilisateur vers une page de connexion qui comprend un champ de saisie masqué contenant l'URL de la page précédente :
<code class="php">echo '<input type="hidden" name="location" value="'; if(isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
Dans le login-check.php qui traite la demande de connexion, si la connexion réussit et que le paramètre de localisation est défini, l'utilisateur est redirigé vers l'URL stockée :
<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>
Cependant, il est crucial d'effectuer une validation sur le paramètre $_GET['location'] pour empêcher les utilisateurs d'être redirigés vers des sites Web malveillants. De plus, utilisez toujours le code urlen lorsque vous transmettez des URL en tant que paramètres GET pour gérer correctement les caractères d'URL spéciaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!