假设我的站点是 a.com 有图片a.com/123.png
b.com 使用该图片的时候 http_referer 是?
然后直接在地址栏输入a.com/123.png http_referer 是b.com
我想问的是怎么判断图片是其它站被引用还是用户直接访问?
回复讨论(解决方案) request.servervariables[http_referer]
request.servervariables[http_referer].tostring().contains(request.servervariables[http_host].tostring())
在外链点进去的时候 http_referer也带着这个网站的主机地址呢
加个if语句来判断。然后tostring解析到地址,就可以用计数器判断了
直接浏览器输入 http_referer 为空
从页面链接过来 http_referer 为那个页面的url
但是需要注意的是,所有有 http_ 前缀的变量都是访问方提供的,可靠性极低
你只能靠http_referer来判断,虽然这个不是很靠谱可以伪造。
request.servervariables[http_referer]
request.servervariables[http_referer].tostring().contains(request.servervariables[http_host].tostring())
在外链点进去的时候 http_referer也带着这个网站的主机地址呢
加个if语句来判断。然后tostring解析到地址,就可以用计数器判断了
有没有php版本的大侠
$_server['http_referer']里面
至于里面参数好像有点多。打出来慢慢看。
楼主说的这个问题就是盗链啊。
header(content-type:text/html; charset=utf-8);
if(isset($_server['http_referer'][
])){
//判断$_server['http_referer'是不是以http://localhost/test/为开头的
//如果是,则说明是本网站,如果不是,则说明不是本网站,
if(strpos($_server['http_referer'],http://localhost/test/)==0){
echo '这是本站访问';
}else{
//跳转到警告页面
header('location:warning.php');
}
}else{
//跳转到警告页面
header('location:warning.php');
}
以上这段代码是我自己写的一段反盗链的代码。你的问题,一看这段代码就能够解决。在传智播客韩顺平php系列视频中的第84讲就讲到了这个反盗链的问题。可以更清楚的了解了。