0

好的,首先,对不起,如果这是重复的。我在堆栈溢出和互联网上搜索了大约 20 分钟,但我似乎无法找到解决问题的方法。

我正在尝试做的事情:

我在每个页面上都有一个登录表单,其中包含用户当前所在页面的隐藏输入 - 所以当他们登录时,它会成功重定向回他们所在的页面。

例如,用户在 news.php 上但未登录。他们登录,这会将他们带到 login.php 以验证数据,然后重定向回 news.php

这很好用!

问题:如果 URL 末尾有任何获取数据或锚标记,我似乎无法重定向回那个。

例如,用户在 news.php?id=4#comments 上但未登录。他们登录等,但它重定向回 news.php 并忽略尾随数据。

有人在这里有什么帮助吗?

我的代码:

<input type="hidden" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" name="location"  />

$previousPage = $_POST['location'];
header("refresh: 1; url=".$previousPage);

显然我认为问题出在 $_SERVER['HTTP_REFERER'] 部分,但我不确定用什么替换它以使其包含尾随数据。

感谢所有帮助!

4

2 回答 2

1

只需使用

print_r($_SERVER);

并选择最适合您需求的一款!

提示:结合HTTP_HOSTREQUEST_URI

哈希部分实际上永远不会发送到服务器:我可以在我的服务器端应用程序(PHP、Ruby、Python 等)上读取 URL 的哈希部分吗?

于 2013-07-31T18:20:43.163 回答
0

感谢@Tobias,

这就是我最终的结果:

<?php echo basename($_SERVER['REQUEST_URI']); ?><script>document.write(window.location.hash); </script>

在example.com/news.php?id=2#comments 之类的页面上将返回:

news.php?id=2#comments
于 2013-08-01T04:11:23.463 回答