如何将用户从登录页面重定向到另一个php

问题描述:

假设用户已将书签标记为“http://www.example.com/login#/settings”。如果用户试图访问该页面时,他被注销,首先,我希望他用这种方法如何将用户从登录页面重定向到另一个php

http://www.example.com/authenticate/login?continue=http://www.example.com/login#/settings

注意重定向到登录页面,然后到书签的页面:

  • 我正在使用MVC架构
  • 是否有任何方法而不是HTTP_REFERER

当用户输入http://www.example.com/login#/settings我想在我的控制器文件中读取整个URL包括#锚然后只有我可以设定网址

HTTP://www.example .com/authenticate/login?continue = http://www.example.com/login#/settings

那么我该怎么做?

+1

尝试'header:'而不是 – 2012-08-01 04:58:45

+0

@BhuvanRikka登录页面通过身份验证/登录显示,登录控制器仅在登录后才会激活,并且无法获取包含#anchor的整个网址 – user1400191 2012-08-01 05:03:23

+1

如果我得到了该权限,你已经在你面前有了答案。简单的获得'继续'的价值和身份验证后使用'header'重定向 – asprin 2012-08-01 05:03:37

取决于您想如何呈现给用户。对于一个简单的重定向,使用header发送HTTP Location头

header("Location: http://www.google.com/"); 

如果你想给你的用户一些时间把它们放在之前阅读短消息,那么你可以使用header发送HTTP刷新头

header("Refresh: 5; url=newpage.php"); 

编辑:为了捕获锚点,您将需要使用JavaScript。该信息不适用于PHP。在这种情况下,如果您使用JavaScript来捕获锚点,那么您最好还是在JavaScript中编写重定向。

编辑2:也许是另一种选择是,当你传递继续你的程序,也送主播另一GET变量。所以你的URI可能是这样的:

http://www.example.com/authenticate/login?continue=http://www.example.com/login&anchor=settings#/settings 

然后使用$_GET['anchor'],它串联到$_GET['continue']#值。

$uri = $_GET['continue'] . "#" . $_GET['anchor']; 
+0

为了设置**继续**价值,我必须得到整个网址,包括#锚...我如何得到这个在PHP ??????? – user1400191 2012-08-01 05:10:41

+2

你需要为此使用JavaScript。 – Hameed 2012-08-01 05:12:19

+0

但是我如何在控制器内部执行此操作?任何示例都会非常有帮助 – user1400191 2012-08-01 05:17:12

您在cannot read the part after the #从PHP。你需要为此使用JavaScript。例如,你可以使用

window.location.hash 

要找到散列的部分,如果有的话(这将是'如果没有散,或“#something”如果有一个)。然后,您可以将其作为请求内的隐藏字段发送给控制器。

+0

我正在使用MVC。那么我在哪里可以将JavaScript放入我的平台 – user1400191 2012-08-01 05:27:31

+0

MVC可以应用于任何东西;我在Java和JavaScript以及其他地方使用它。这只是分解程序的一种(好)方式。请编辑您的问题以解释您的平台如何运作。大部分是MVC,但这并没有那么有用。 – tucuxi 2012-08-01 05:32:59

+0

@ user1400191说这是mvc非常模棱两可 – ianace 2012-08-01 06:07:09