当用户登录网站时,通常希望将他们重定向回之前浏览的页面。这提供了无缝的用户体验,并且无需登录后手动导航。
为了实现此目标,常见的方法是将用户当前页面 URL 作为 $_GET 变量传递到登录表单。例如,如果用户在文章页面“comment.php?articleid=17”上尝试发表评论,则 URL 将包含当前位置。
登录页面 (login.php)然后应该检查 $_GET['location'] 是否存在。如果存在,页面可以在成功登录后将用户重定向到该特定 URL。实现方法如下:
在login.php中:
<code class="php">echo '<input type="hidden" name="location" value="'; if(isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
此隐藏输入字段存储当前页面 URL 并将其与登录表单提交一起发送。
在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>
在此login-check.php脚本中:
这种机制可以平滑地重定向到用户登录前浏览的页面,增强用户体验并简化登录过程。
以上是登录成功后如何将用户重定向回上一页?的详细内容。更多信息请关注PHP中文网其他相关文章!