登录后重定向到上一页
当用户登录网站时,通常希望将他们重定向回他们登录的页面在登录之前正在查看。这可确保无缝的浏览体验并允许用户继续其任务。
要实现此重定向,常见的方法是将用户当前页面 URL 作为查询字符串参数传递登录表格。例如:
<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
此代码将“位置”参数添加到登录页面 URL。该参数的值是当前页面的 URL,经过编码以确保其与 URL 参数兼容。
在登录表单中,添加一个隐藏输入字段来存储“位置”参数:
<code class="php">echo '<input type="hidden" name="location" value="'; if (isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
提交登录表单时将填充此输入字段。
在login-check.php脚本中,检查POST数据中是否存在“location”参数。如果是,则将其值存储在 $redirect 变量中:
<code class="php">$redirect = NULL; if ($_POST['location'] != '') { $redirect = $_POST['location']; }</code>
如果登录成功,则将用户重定向到 $redirect URL 而不是默认目的地(例如“index.php”) :
<code class="php">if (isset($redirect)) { header("Location:" . $redirect); } else { header("Location:login.php?p=3"); }</code>
安全注意事项
在重定向用户之前验证 $_GET['location'] 参数非常重要。这可以防止恶意用户将用户重定向到有害的 URL。验证参数的一种方法是检查它是否以网站的域名开头。
以上是如何将用户登录后重定向回上一页?的详细内容。更多信息请关注PHP中文网其他相关文章!