欢迎您访问我爱IT技术网,今天小编为你分享的javascript教程:【完美兼容各大浏览器获取HTTP_REFERER方法总结】,下面是详细的讲解!
完美兼容各大浏览器获取HTTP_REFERER方法总结
后来查了一些相关资料,发现在IE 中通过 window.location.href 或者是 是无法获取HTTP_REFERER, 真是搞不懂 IE 的浏览器,很多浏览器运行的很好的东西,它就是不支持,最后没有办法,只能PHP伪造来源HTTP_REFERER的方法或者用JS来伪造。
IE可以识别的 HTTP_REFERER 提交是通过click 触发的事件或者是 Form 表单提交的请求,下面是根据网上的资料总结的一个方法:
<script>
function referURL(url){
var isIe=(document.all)?true:false;
if(isIe) {
var linka=document.createElement(‘a');
linka.href=http://www.jb51.net/article/url;
document.body.appendChild(linka);
linka.click();
}
else window.location=url;
}
var url=”http://www.jb51.net”;
referURL(url);
</script>
这个方法先是用 document.all 来判断当前的浏览器是否是IE, 如果是的话就生成一个link,然后自动执行 onclick 事件,如果不是的话就用JS 跳转。这样在处理页面就可以得到 HTTP_REFERER 了
此方法在IE, Firefox, Safari , Chrome 测试通过
2. PHP利用curl伪造IP和来路HTTP Referrer
referer.php
<?php
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mydomain.com/ip.php");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:8.8.8.8', 'CLIENT-IP:8.8.8.8')); //构造IP
curl_setopt($ch, CURLOPT_REFERER, "http://www.jb51.net/ "); //构造来路
curl_setopt($ch, CURLOPT_HEADER, 1);
$out=curl_exec($ch);
curl_close($ch);
echo $out;
ip.php
<?php
function getClientIp() {
if (!empty($_SERVER["HTTP_CLIENT_IP"]))
$ip=$_SERVER["HTTP_CLIENT_IP"];
else if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
$ip=$_SERVER["HTTP_X_FORWARDED_FOR"];
else if (!empty($_SERVER["REMOTE_ADDR"]))
$ip=$_SERVER["REMOTE_ADDR"];
else
$ip="err";
return $ip;
}
echo "IP: " . getClientIp() . "<br>";
echo "referer: " . $_SERVER["HTTP_REFERER"];
关于完美兼容各大浏览器获取HTTP_REFERER方法总结的用户互动如下:
相关问题:获取客户端IP、浏览器和操作系统信息的几种方法
答:p align=center获取客户端浏览器和操作系统信息的几种方法/p Script language=VBscript '=首先---穷举法:用VBS中的Navigator.appVersion(或者.UserAgent)属性= '=此种方法可以在客户端显示,但是不可以保存到服务器端数据库里= Document.write N... >>详细
相关问题:如何在代码中屏蔽浏览器的兼容模式
答: 应该这样 >>详细
相关问题:网页新手,在猎豹浏览器完美兼容,但在IE和火狐问...
答:按W3C标准去写代码,用IE和火狐浏览器做测试浏览,你出发点就错了,现在就是再用这个去改,脚本特效(比如BANNER、下拉菜单、弹出菜单、滚动图片等)最好用Jquery来做,不然很容易就不兼容 >>详细
- 【firefox】firefox浏览器不支持innerText的解决
- 【Extjs】Extjs学习过程中新手容易碰到的低级错误
- 【clearInterval】js clearInterval()方法的定义
- 【dom】javascript dom追加内容实现示例-追加内容
- 【checkbox】让checkbox不选中即将选中的checkbox
- 【Array】js中更短的 Array 类型转换-类型转换
- 【append】append和appendTo的区别以及appendChil
- 【ExtJs】ExtJs 表单提交登陆实现代码-表单提交-
- 【addClass】javascript自定义的addClass()方法
- 【Event】jquery下为Event handler传递动态参数的
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
