我正在建立一个网站,但我遇到了一些我不知道该怎么做的事情。
我的网站成员可以点击的每个页面都有一个链接,当他们这样做时,会将他们带到同一页面,最后会有一个查询,还有一个确认链接,如;
/contact?tab=hotlink
现在在这个页面上有一个隐藏的表单和一个确认按钮,我打算使用$ _SERVER ['HTTP_REFERER'],但是之前的网址是/ contact?tab = hotlink,我需要它... < / p>
/contact
有没有办法用字符串替换所有查询,我可以用会话来做,但宁愿用另一种方式做,因为这意味着设置了很多不必要的会话。
由于
答案 0 :(得分:3)
查询字符串在
中$_SERVER['QUERY_STRING']
所以
str_replace( $_SERVER['QUERY_STRING'], '', $_SERVER['HTTP_REFERER'] )
应该在没有查询字符串的情况下提供请求。
答案 1 :(得分:2)
使用php explode function通过在?
上分割字符串,从引用者中提取基本网址:
$http_referer_full_url = explode("?", $_SERVER["HTTP_REFERER"]);
$http_referer_base_url = $http_referer_full_url[0];
@Rijk的答案不起作用,因为示例中的$_SERVER['QUERY_STRING']
引用了当前正在执行的脚本,而不是来自引荐来源页面的查询字符串。
答案 2 :(得分:0)
通常你不会为此进行页面刷新和查询字符串 - 你会链接到#hashed
网址,如下所示:
<a href="/contact#tab=hotlink">Hotlink</a>
然后使用Javascript处理程序捕获hashchange event(不需要页面刷新,因此速度更快)并在“热链接”选项卡上动态加载/显示您需要的任何内容。
这样,服务器甚至无法参与,您的页面响应速度也会更快。
答案 3 :(得分:0)
您可以将$_SERVER['SCRIPT_NAME']
用于此