进销存,进销存软件,进销存管理软件,Web进销存,定制进销存系统,Web系统开发,进销存分销版,进销存企业版 -欢迎咨询viooma.com

当前位置: 主页 > Web技术 > 网络编程语言 >

php过滤|阻止特定域名(php提取url的主域名)

时间:2009-09-06 23:44来源:未知 作者:admin 点击:
我们在编写程序的时候,经常会碰到过滤网址的问题,一般我们把域名黑名单存放在数据库,然后对当前输入的网址进行过滤阻止,但是我们存放在数据库的肯定是主域名,而实际用户
 

我们在编写程序的时候,经常会碰到过滤网址的问题,一般我们把域名黑名单存放在数据库,然后对当前输入的网址进行过滤阻止,但是我们存放在数据库的肯定是主域名,而实际用户在操作的时候可能是带目录或其它参数的域名,所以我们必须取得提交的URL的主域名,当然方法可能有很多种,比如用正则找出主域名等,这里我用到了PHP里的一个URL分析函数parse_url()函数,下面看代码:

$url=http://www.zzzz1.com:9090/ok/yy/ok.html;

$url=str_replace('http://','',strtolower($url));

//实践证明,如果URL里没有http的话,就不能进行分析,所以为了防止有些不http的用户,干脆进行一下替换,等下再加回来
$url_info=parse_url('http://'.$url);

//此时url_info为一个数组,我们可以将其键输出来看一下

print "<pre>";

print_r($url_info);

print "</pre>";

好了,输出来的结果就是这个样子了,从里我们可以看到,完整的URL已经被分析出来了,这个时候我们只要取数组相应下标来进行判断即可

Array
(
    [scheme] => http
    [host] => www.zzzz1.com
    [port] => 9090
    [path] => /ok/yy/ok.html
)
下面看过滤检查函数(我直接用DEDE的连接类了,呵呵):
function noallowurl($url){
 $sql_url=New dedesql(false);
 $query_url="select count(bid) from viooma_badurl where b_url LIKE '%".$url."%'";
 $row_url=$sql_url->getone($query_url);
 if($row_url[0]==0)
   $returnval = 0;
   else
   $returnval = 1;//阻止转换
}
之后在主程序里判断一下就OK了,如:
if(noallowurl($url_info['host'])==1){
 echo "<script language='javascript'>alert('兄弟,黑名单啊?');</script>";
}
就这么简单的解决了。
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:

建站技术最新文章

进销存最新客户

湖南兴鑫教育发展有限公司

湖南联大教育培训学校

山东恩凯科技发展有限公司

北京东方迪码科技有限公司

郑州威科姆科技股份有限公司

北京华旗资讯科技发展有限公司

苏州大方特种车辆有限公司

如东飞腾科技

福建松溪晖帆科技发展有限公司

韩服在线

化妆精品一店

辽宁百利达医疗

西点商务合作

香港大兴门业公司

台湾红青蜓皮鞋

台湾华达电脑科技公司

湖南娄底双鹤药业有限公司