好的,首先,对不起,如果这是重复的话。我已经搜索了大约20分钟的堆栈溢出和互联网,我似乎找不到解决我的问题。
我正在尝试做什么:
我在每个页面都有一个登录表单,其中隐藏的输入包含用户所在的当前页面 - 所以当他们登录时,它成功地重定向回到他们所在的页面。
E.g。用户在news.php上并且没有登录。他们登录,将他们带到login.php验证数据,然后重定向回news.php
这很棒!
问题:如果网址末尾有任何获取数据或锚标记,我似乎无法重定向回来。
E.g。用户在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']部分,但我不知道要替换它以使其包含尾随数据。
感谢所有帮助!
答案 0 :(得分:1)
只需使用
print_r($_SERVER);
并选择最适合您需求的那个!
提示:结合HTTP_HOST
和REQUEST_URI
。
哈希部分实际上永远不会发送到服务器:Can I read the hash portion of the URL on my server-side application (PHP, Ruby, Python, etc.)?
答案 1 :(得分: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