我的博客在以前有收录过一段人家写的代码
这是CNBRUCE的一篇贴子~!感觉不错~
BLOG一直被人在日志评论中链接广告。虽然加了验证码,使得广告机器发布广告的机会减少了;但还是有不少广告发布者手工来本BLOG发布。烦透了~!
总不想就这样让这些人强奸玷污着,加了一个判断直接过滤。大体流程是如下的:
1,本日志评论对公众是开放的,言论自由但不代表本BLOG意思,只做交流之用。
2,偶有广告,是否广告基本一看即知,最起码得含有他的网站地址连接吧。
3,好,既然你发广告,我不和你多说,先删除你的这个广告性质的评论,记下你的网址关键字。
4,下面自己写的小东西就来过滤了,不好意思了。
Function glvs(g_text,l_text)
if instr(g_text,l_text)<>0 then
response.Redirect ("http://www.cnbruce.com/test/bomb.html")
response.end
end if
End Function
其实主要就是instr()函数,它的意思是获得 l_text 在 g_text 中的位置。当然,我这里用来是检测 g_text 中是否含有 l_text(只要当不存在的时候,其位置才是0)。用在过滤中的意思就是,在接受的评论中是否含有已定义的过滤的字眼。如果含有,就表示你这个人怎么又来发广告了。好,让你直接跳转到“ http://www.cnbruce.com/test/bomb.html ”这个炸弹页面-_-!算是一个“毒丸计划”吧。
后来想想这招也太损了,干脆不跳转到炸弹页,跳转到我的其他站点吧,还能为我的那个站带来流量呢。:p
5,那么到底是哪些关键字要被过滤呢,当然是我记录下的曾在我的BLOG发布广告的一些关键字了。具体我是笨方法,一个个检测。
Function misini()
call glvs(log_r_content,"六合彩")
call glvs(log_r_content,"免费电影")
call glvs(log_r_content,"junyuan")
call glvs(log_r_content,"qn888")
call glvs(log_r_content,"kaixin163")
call glvs(log_r_content,"sodg")
call glvs(log_r_content,"happyxc")
call glvs(log_r_content,"51jiashi")
call glvs(log_r_content,"kaixin163")
call glvs(log_r_content,"lookjoke")
call glvs(log_r_content,"7s8x")
call glvs(log_r_content,"ejingda")
call glvs(log_r_content,"gay-massage")
call glvs(log_r_content,"honglian8")
call glvs(log_r_content,"wowgoldstores")
call glvs(log_r_content,"jk-999")
call glvs(log_r_content,"ccwl")
call glvs(log_r_content,"yl007")
call glvs(log_r_content,"id863")
call glvs(log_r_content,"yongrong")
call glvs(log_r_content,"fubo-edu")
call glvs(log_r_content,"printstrademark")
call glvs(log_r_content,"72e")
End Function
呵呵,这是我的BLOG已经过滤的广告关键字,都是在我BLOG发表带有连接的广告性质评论里面记录的。SO,如果你是广告发布者,当你发现你在输入了你的广告URL的时候会跳转到 http://www.dw8.cn 请不要诧异,因为我给你过滤了。
同样也请你不要生气,是被逼的-_-!(我相信,会有广告发布者看到本BLOG日志的)广告途径多的是,传统媒体才是王道,舍不得花钱在网络上乱发,中国互联网就是被你们给搞得乌烟瘴气的,不说了。。。
6,最终只要在日志评论插入记录之前调用一下该函数即可。
if log_r_content="" then
response.write("不能提交空白的评论")
response.end
else
call misini()
'............
'插入日志评论
'..............
end if
以上是我目前的方法,如果有人的BLOG也遇到我的这个情况,参考一下了。
==============================================================
匆忙之际的乱文,竟然起了抛砖引玉的功效,以下是在经典讨论的结果
woochysean的解决方案
function glvs(s)
dim bads,found,word
bads = "六合彩,免费电影,junyuan,qn888,....."
bads = split (bads,",")
found = false
for each word in bads
if instr(s,word) then
found = true
exit for
end if
next
glvs = found
end function
if log_r_content="" then
response.write("不能提交空白的评论")
response.end
else
if glvs(log_r_content) then
'发现广告
end if
'............
'插入日志评论
'..............
end if
此法一样可以用在留言簿上,自己可以看一下,改改就好了
[此贴子已经被作者于2006-10-12 10:03:32编辑过]