首页  >  文章  >  后端开发  >  如何将用户登录后重定向回上一页?

如何将用户登录后重定向回上一页?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-02 04:47:02226浏览

How to Redirect Users Back to the Previous Page After Login?

登录后重定向到上一页

当用户登录网站时,通常希望将他们重定向回他们登录的页面在登录之前正在查看。这可确保无缝的浏览体验并允许用户继续其任务。

要实现此重定向,常见的方法是将用户当前页面 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn