PHP-登录后重定向到上一页并包括获取数据


PHP - Redirecting to previous page after logging in AND INCLUDING GET DATA

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

我要做的事情:

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

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

这太棒了

问题:如果URL末尾有任何get数据或锚标记,我似乎无法重定向回该位置。

例如,用户在news.php上?id=4#评论,但没有登录。他们登录了,等等,但它重定向回news.php并忽略后面的数据。

这里有人帮忙吗?

我的代码:

<input type="hidden" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" name="location"  />
$previousPage = $_POST['location'];
header("refresh: 1; url=".$previousPage);

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

感谢所有的帮助!

只需使用

print_r($_SERVER);

并选择最适合您需求的!

提示:合并HTTP_HOSTREQUEST_URI

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

感谢@Tobias,

这就是我最终得到的:

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

example.com/news.php这样的页面上,哪个?id=2#评论将返回:

news.php?id=2#comments