2

使用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.)其中的 URL 现在读取http://www.example.com/members.php#registered_members

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

4

2 回答 2

3

你可以利用$_SERVER['REQUEST_URI'].

例子:

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

回答修改后的问题:

URL的#registered_members一部分,称为片段标识符,永远不会发送到服务器——它只是客户端。所以 PHP 从来不知道它的存在。

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

<script>alert(window.location.hash);</script>
于 2013-10-06T17:56:27.063 回答
1

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

于 2013-10-06T17:58:27.737 回答