好的,首先,如果这是重复的,很抱歉。我在堆栈溢出和互联网上搜索了大约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_HOST
和REQUEST_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