Lorsqu'un utilisateur se connecte à un site Web, il est souvent souhaitable de le rediriger vers la page sur laquelle il parcourait précédemment. Cela offre une expérience utilisateur transparente et élimine le besoin de navigation manuelle après la connexion.
Pour atteindre cet objectif, une approche courante consiste à transmettre l'URL de la page actuelle de l'utilisateur en tant que variable $_GET au formulaire de connexion. Par exemple, si un utilisateur se trouve sur la page de l'article "comment.php?articleid=17" lorsqu'il tente de laisser un commentaire, l'URL inclura l'emplacement actuel.
La page de connexion (login.php) devrait alors vérifier la présence de $_GET['location']. Si elle existe, la page peut rediriger l'utilisateur vers cette URL spécifique après une connexion réussie. Voici comment vous pouvez l'implémenter :
Dans login.php :
<code class="php">echo '<input type="hidden" name="location" value="'; if(isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
Ce champ de saisie masqué stocke l'URL de la page actuelle et l'envoie avec la soumission du formulaire de connexion.
Dans login-check.php :
<code class="php">session_start(); $redirect = NULL; if(isset($_POST['location']) && $_POST['location'] != '') { $redirect = $_POST['location']; } if((empty($username) OR empty($password) AND !isset($_SESSION['id_login']))) { $url = 'login.php?p=1'; if(isset($redirect)) { $url .= '&location=' . urlencode($redirect); } header("Location: " . $url); exit(); } elseif (!user_exists($username,$password) AND !isset($_SESSION['id_login'])) { $url = 'login.php?p=2'; if(isset($redirect)) { $url .= '&location=' . urlencode($redirect); } header("Location:" . $url); exit(); } elseif(isset($_SESSION['id_login'])) { if($redirect) { header("Location:". $redirect); } else { header("Location:login.php?p=3"); } exit(); }</code>
Dans ce script login-check.php :
Ce mécanisme permet une redirection fluide vers la page que l'utilisateur parcourait avant la connexion, améliorant ainsi l'expérience utilisateur et simplifiant le processus de connexion.
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!