如何在PHP登录后重定向回来

时间:2010-01-27 05:52:30

标签: php authentication login

有时我们从网站获得链接,当我们点击邀请链接时,它只是将我们发送到索引页面进行登录(因为我们没有登录该网站),当登录完成时,网站只是重定向我们到我们点击的链接。

如何在PHP中实现这一目标?

2 个答案:

答案 0 :(得分:5)

假设“目标网页”被称为“a.php”;这是一种可能的方式来做你正在描述的事情:

  • 您首先从浏览器中拨打a.php
    • a.php检测到您未登录
    • 它会将您重定向到index.php,并在网址中显示一个参数index.php,您应该在登录后重定向到a.php
    • 使用header函数完成重定向,Location标题指向http://yoursite.com/index.php?destination=a.php
  • index.php上,您将处理登录机制
    • 即。带有隐藏字段的表单,$_GET['destination']存储在中(当然正确转义)
    • 该表单发布到index.php (即自身)或其他页面;并不重要。
  • 发布登录表单时:
    • 您查看凭据
    • 如果登录+密码正常:
      • 如果表单数据中有destination字段,则将用户重定向到相应的页面
      • 否则,您将用户重定向到默认页面。
      • 当然,检查destination字段的内容可能会很有趣,以确保您只接受重定向到“有效”页面(“有效”的定义可以更改 - - 但至少可以表示“您网站上的网页”)

答案 1 :(得分:1)

您可能还想尝试...

start_session();
$_SESSION[destination] = strip_tags($_GET[destination]);

..而不是将变量称为隐藏字段。然后在POST上进行检查(你需要检查哪些功能),例如

if ($_SESSION[destination] !='' || empty($_SESSION[destination]) && !is_numeric($_SESSION[destination])){

header('Location:'.$_SESSION[destination]);

}