现在很多网站通过不同的渠道推广,为了区分访客来源,一般会在Url链接后面带上#字符串;这样客户填写的表单,我们可以区分是哪里来的。比如百度竞价链接:https://www.abc.net/article.php?id=1234#baidujingjia
经测试:PHP自身带的获取url地址的语句:$_SERVER[‘REQUEST_URI’] 是获取不到带#的完整的地址的,比如像上面这个地址:
https://www.abc.net/article.php?id=1234#baidujingjia
<?php
$fullUrl = $_SERVER['REQUEST_URI'];
echo $fullUrl;
?>
它只能输出:
https://www.abc.net/article.php?id=1234
为了获取完完整整的带#baidujingjia的地址,要加上Js代码:
<script>
var url = window.location.href;
</script>
<?php
$fullurl= "<script type=text/javascript>document.write(url)</script>";
echo $fullurl;
?>
这样,整串Url就出来了,亲测可用。
如果只在表单中使用,表单可以用Js获取后直接写到input里,不需要php写:
<form method="post" action="booking.php" name="myform" id="myform">
...
<input type="hidden" name="ufrom" id="ufrom" size="25" value="">
<script type="text/javascript">
var b_url = window.location.href; //可以获取 url带#的字符串
document.getElementById('ufrom').value=b_url;
</script>
</form>