制作用户正在查看的页面停留在页面上而不是重定向到主页

时间:2013-10-06 17:44:09

标签: php html

使用php,我怎么能做到这一点?例如:

1。)总共让我们说5页(A,B,C,D,E)任何用户都可以查看(登录或退出)

2。)用户X正在查看页面(C)并且未登录

3。)用户X登录页面(C)并登录到他/她正在查看的同一页面(C),而不是重定向到主页

我知道如何在任何用户登录任何页面时将用户重定向到主页的位置,但我不希望这样,这是我的用户不想要的东西 - 我希望任何用户都可以登录他们正在查看的任何页面,它会保留在该页面上,而不是被重定向。

这是我为用户登录并重定向的内容,但不知道如何让用户能够在用户登录时停留在任何页面上。

PHP

header("Location: index.php");

是否需要更多内容才能让用户在登录时保持在同一页面上?或者是否有一个简单的解决方案,我似乎无法仅使用上面的那一行代码找到?

我已经阅读了大量的教程/博客/论坛等...但无法在任何地方找到明确的答案。我确实遇到了'PHP_SELF',但根本不知道如何实现它,而且php.net并没有真正有一个如何使用它的明确解决方案 - (或者至少从我读到的内容)...任何帮助都会非常感谢。

已解决: - >感谢您的帮助Thinkswan

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
header("Location: $current_url");

更新: - >一个源于最初问题的问题

根据您在上面提供的正确格式,我们可以更进一步吗?例如:

同样的规则适用于前面提到的。

1。)如果用户X当前未登录页面(C),让我们说页面(C)的URL读取http://www.example.com/members.php,并且有一个div容器他/她点击该页面,另一个更大的div容器打开。

2。)其中的网址现在为http://www.example.com/members.php#registered_members

3。)当它打开时,用户X决定现在登录。有没有办法让用户X登录的地方保持在那个更大的同一页面上div容器打开?目前,一旦用户X登录,div容器就会崩溃,但是IS登录到同一页面。

2 个答案:

答案 0 :(得分:3)

您可以使用$_SERVER['REQUEST_URI']

示例:

$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
header("Location: $current_url");

回答修订后的问题:

网址的#registered_members部分(称为片段标识符)永远不会发送到服务器 - 它只是客户端。所以PHP永远不会意识到它甚至存在。

然而,您可以在页面重新加载时使用JavaScript检查它,然后根据页面是否存在更新页面。

<script>alert(window.location.hash);</script>

答案 1 :(得分:1)

如果您在所有表单中包含或调用相同的登录页面,则可以执行一项操作。只需在会话变量中获取当前页面URL,然后将其重定向到该页面。