首页  >  文章  >  后端开发  >  为什么我登录后重定向到index.php而不是上一页?

为什么我登录后重定向到index.php而不是上一页?

Barbara Streisand
Barbara Streisand原创
2024-11-02 01:31:31735浏览

Why Am I Redirected to index.php After Logging In Instead of My Previous Page?

登录后重定向到上一页

登录网站时,通常可以方便地重定向回用户正在查看的页面在他们登录之前。这个问题探讨了一个代码问题,即用户被重定向到index.php而不是预期的页面。

在提供的示例代码中,login-check.php脚本确定登录状态并发送将参数 (p) 重定向到 login.php 页面。但是,它不会将用户发送到所需的页面,而是将他们重定向到index.php。

为了解决此问题,建议使用以下解决方案:

  1. 将用户的当前页面作为查询字符串传递

    • 修改登录表单以包含存储用户当前页面的隐藏输入字段。这可以通过在 login.php 脚本中传递 $_SERVER['REQUEST_URI'] 来完成。
    • 例如,如果用户正在阅读一篇文章 (comment.php?articleid=17) 并尝试离开评论,URL 将修改为:
      login.php?location=comment.php?articleid=17
  2. 处理“位置”查询字符串在login-check.php:

    • 在login-check.php脚本中,检查$_POST['location']是否已填充。如果是,请将其存储在 $redirect 变量中。
  3. 根据登录状态和位置进行重定向:

    • 如果登录成功,请检查 $redirect 中是否有可用的重定向 URL。如果是这样,请将用户重定向到该页面。否则,将它们重定向到index.php。
    • 如果登录失败或用户已经登录,请处理适当的错误消息或根据需要重定向。
  4. 验证重定向 URL:
    在重定向用户之前验证 $_GET['location'] 值非常重要,以确保他们不会尝试访问恶意 URL。
  5. 编码查询字符串
    将 URL 作为 $_GET 参数传递时使用 urlencode 来正确编码特殊字符。

通过实施这些更改,用户将成功重定向到他们之前查看的页面登录后,确保无缝的用户体验。

以上是为什么我登录后重定向到index.php而不是上一页?的详细内容。更多信息请关注PHP中文网其他相关文章!

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