禁止黑名单的评论

最近为 SPAM 的事情烦透了,虽然每天的 SPAM 信息不多,但是也很烦人,还特意写了一篇文章《老子受不了你们了》来解解气。

虽然很多 SPAM 都是被丢进了垃圾评论中,但是每天看到垃圾评论中有垃圾心里很不爽。后台有个评论黑名单的功能,但是我觉得没什么作用。比如你把 xxoo@xxoo.com 这个邮箱加进了黑名单,WP前台并不能阻止这条评论写进数据库,他只是会把这条评论列为垃圾放在垃圾评论中,个人觉得这个功能有些鸡肋。

前几天想到一个办法,就是当用户提交的评论写到数据库之前,进行一次判断,看看黑名单中是否有这些信息,如果有的话那么就返回,不写入数据库,没有的话就正常的执行。想法我觉得蛮好,但是就是TM不会PHP,郁闷了。昨天在本地用 JavaScript 写了一个,效果倒是实现了,可惜操作起来非常的麻烦,因为黑名单并不能从数据库中读取出来,而是用一个数组保存的,然后再一个个匹配,这样的执行效率很低。

今天又闲着蛋疼,认真的折腾一下,发现用 PHP 实现起来也不是很难,当然这只是相对于我的博客,因为我的博客评论方式是 AJAX 的。虽然不会 PHP ,但是看懂一些代码还是没问题的,其实这个功能的实现也基本不难,就只是写一条 SQL 语句,然后再判断一下就搞定了。

效果如下图,提交后,访客的昵称、EMAIL、网址出现在黑名单中的话,就会出现提示。

废话了那么多,开始正题,我的评论 Ajax 效果是出自《使用 jQuery 实现 wordpress 的 Ajax 留言》,修改的文件也是这篇文章中所新增加的comments-ajax.php文件。

整个也就一个步骤,把下列代码加入到文件中,具体什么位置你看着办吧,我是加在了评论不能为空的判断之后。

$spam = "SELECT COUNT(*) FROM $wpdb->options WHERE option_name = 'blacklist_keys' AND (option_value like '%".$comment_author."%' or option_value like '%".$comment_author_email."%' or option_value like '%".$comment_author_url."%')";
if($wpdb->get_var($spam)){
    fail('对不起,您的信息已经被列入黑名单,如有疑问请联系博主。');
}

至于其他的修改方法我也不知道怎么弄了,这只是给大家一个参考。

另外给大家推荐一个插件:《WordPress插件:Spam_To_Blacklist》,其作用就是把评论列为垃圾的时候,会把相关信息自动添加到黑名单中。

THE END
禁止spam黑名单
好好复习准备南下
动态 +1 效果

添加评论

已有 83 条评论

由 Google AI Gemini Pro 生成

哈哈,老哥你终于想起来解决这个问题了,我早就受够了那些烦人的垃圾评论了。不过你的方法看起来好像有点复杂,我不太懂代码,不知道能不能实现。不过我倒是用过一个插件叫「Spam_To_Blacklist」,它可以自动把垃圾评论标记为黑名单,挺好用的,你也可以试试。

万戈
万戈 2010-08-11 07:04 回复
上海 Windows XP Firefox

呵呵,骨头软件,贱骨头

冰剑
冰剑 MOD 2010-08-11 14:10 回复
湖南 Windows 7 Firefox

国内 SPAM 风行和骨头脱不了干系。

逸冰
逸冰 2010-08-11 09:12 回复
浙江 Windows XP Firefox

这个功能好强大,看看我那里的垃圾评论已经是7、80条了,看着确实是眼烦....

冰剑
冰剑 MOD 2010-08-11 14:10 回复
湖南 Windows 7 Firefox

你不会还一直留着吧?

insect
insect 2010-08-11 09:23 回复
陕西 Windows XP Chrome

这个好,可以把一些惯犯干掉

冰剑
冰剑 MOD 2010-08-11 14:10 回复
湖南 Windows 7 Firefox

这个针对机器 SPAM 比较有效,部分人肉的也有效。

搜搜
搜搜 2010-08-11 09:24 回复
浙江 Windows 7 Chrome

我想跟贵站做链接
够酷℃
www.gokuc.cn
我已经把你添加了 ;-)

冰剑
冰剑 MOD 2010-08-11 14:10 回复
湖南 Windows 7 Firefox

不好意思啊,无友情不链接,等我们相互熟悉了一些再做吧。

大智若鲁
大智若鲁 2010-08-11 10:56 回复
辽宁 Windows 7 Firefox

不管怎么说,支持下

大灰很
大灰很 2010-08-11 11:18 回复
山东 Windows 7 Firefox

讨厌垃圾评论。
这个是治本的办法哈,好。

冰剑
冰剑 MOD 2010-08-11 14:10 回复
湖南 Windows 7 Firefox

也不能完全治本,但是比以前的方法更有效。

随缘
随缘 2010-08-11 13:21 回复
安徽 Windows XP Firefox

这个好,我去试试

浩子
浩子 2010-08-11 13:35 回复
贵州 Windows 7 Internet Explorer

额……
这个有时候别人换以下还是可以通过啊

冰剑
冰剑 MOD 2010-08-11 14:10 回复
湖南 Windows 7 Firefox

别人为的就是宣传网站,你把垃圾信息的网站添加进去就可以了嘛,别人不可能去宣传他的EMAIL、网站名吧?

简单
简单 2010-08-11 14:26 回复
四川 Windows XP Firefox

看看我这个邮箱有没进,呵呵!

冰剑
冰剑 MOD 2010-08-11 14:39 回复
湖南 Windows 7 Firefox

我不写邮箱,我直接写网址的,因为大部分的SPAM是为了宣传网站嘛。

简单
简单 2010-08-11 14:27 回复
四川 Windows XP Firefox

经鉴定,还算安全,你小子不错哈! :razz:

随缘
随缘 2010-08-11 15:37 回复
安徽 Windows XP Firefox

名字对于空格或加符号后无效所以只有对网址才是最有效的 :lol:

冰剑
冰剑 MOD 2010-08-11 15:56 回复
湖南 Windows 7 Firefox

名字中加空格和符号可以去掉的,但是我不会正则去除符号,纠结。
不过那些SPAM主要就是为了宣传website,我们填写上 SPAM 的顶级域名就可以了。

土狼妹妹
土狼妹妹 2010-08-11 15:50 回复
北京 Windows XP Firefox

有了这个垃圾评论功能后,还要每天看看,也很麻烦,有些不是垃圾评论也被屏蔽

冰剑
冰剑 MOD 2010-08-11 15:56 回复
湖南 Windows 7 Firefox

我就是觉得既然知道是垃圾评论,为什么还要写到数据库中,后台还需要我们再删除一次。
按这个方法修改的话,可以很好的直接禁止黑名单用户评论。

海天无影
海天无影 2010-08-11 17:19 回复
江苏 Windows XP Firefox

这个不错 直接发表的时候 匹配黑名单列表 还是啊

冰剑
冰剑 MOD 2010-08-11 20:01 回复
湖南 Windows 7 Firefox

匹配速度太慢了,我的是直接模糊查询,看看有没有,没有的话就通过。

寨主
寨主 2010-08-11 19:52 回复
浙江 Windows XP Firefox

这功能很好,不过不知道适不适用于Will Kan大师的AJAX评论呢?

冰剑
冰剑 MOD 2010-08-11 20:01 回复
湖南 Windows 7 Firefox

看了一下,是差不多的,没什么区别,只是修改的时候要把 fail 改成 err ,具体自己折腾吧,有问题再找我。

MOPVHS
MOPVHS 2010-08-11 20:24 回复
浙江 Windows 7 Chrome

nice...虽然会使评论提交变慢...可以考虑在提交成功后再检查不?

冰剑
冰剑 MOD 2010-08-11 21:10 回复
湖南 Windows 7 Firefox

不会变慢啊,只是查询了一次数据库和增加了一次判断。
提交成功后都写到数据库里面去了,那我这功能就成摆设了,我的目的就是不让这条评论进数据库中。

MOPVHS
MOPVHS 2010-08-11 21:53 回复
浙江 Windows 7 Chrome

嘿,的确体验不到延缓的感觉..提交依然很快..

Zhu
Zhu 2010-08-12 00:02 回复
山西 Windows XP Internet Explorer

2012.12.21 博客因意外而关闭
为什么

冰剑
冰剑 MOD 2010-08-12 00:18 回复
湖南 Windows 7 Firefox

汗,那天是世界末日。

ucer
ucer 2010-08-12 02:34 回复
广东 Windows XP Firefox

呵呵,看来此博客很受欢迎啊。

集趣
集趣 2010-08-12 10:45 回复
湖南 Windows XP Chrome

装了放垃圾评论的插件了吗? 如果评论不多的话~碰到垃圾评论一个个放入回收站,然后清空~

总比,老是设置黑名单,要好些吧

冰剑
冰剑 MOD 2010-08-12 13:37 回复
湖南 Windows 7 Firefox

能不能以后你的昵称别写站名?

我装了 Akismet ,我这个功能就是为了防止垃圾评论写进数据库出现在后台,既然是垃圾评论为什么还要让它写进数据库,再后台再让我们删除一次?直接在它被提交的时候禁止不就可以了吗?

总设置黑名单虽然麻烦,但是很有效。

集趣
集趣 2010-08-15 09:51 回复
湖南 Windows XP Chrome

我的博客就叫集趣,为什么要改呢?你比的博客不是叫冰剑博客吗?

冰剑
冰剑 MOD 2010-08-15 17:45 回复
湖南 Windows XP Chrome

呵呵,我的意思是不要用网站的名字作为昵称,没别的意思。
你也算是老朋友了,不改的话也没关系,老朋友特权。

天边鱼
天边鱼 2010-08-12 13:10 回复
辽宁 Windows XP Opera

哈哈.. 骨头其实也没什么.. 软件分人呗..

冰剑
冰剑 MOD 2010-08-12 13:37 回复
湖南 Windows 7 Firefox

对于骨头我也没说什么,我针对的是那些利用软件的人。

山头人
山头人 2010-08-12 19:28 回复
西班牙 Windows XP Chrome

用默认的垃圾评论过滤对我来说够用了..这个先留着

冰剑
冰剑 MOD 2010-08-13 22:55 回复
湖南 Windows 7 Firefox

我主要是不想总在后台删除,麻烦。

平平
平平 2010-08-13 19:33 回复
江苏 Windows XP Internet Explorer

我没事的时候可以删评论玩。 :mrgreen:

冰剑
冰剑 MOD 2010-08-13 22:55 回复
湖南 Windows 7 Firefox

看来你闲得很。。

笔头
笔头 2010-08-13 23:00 回复
山西 Windows XP Firefox

我是要审核的~

笔头
笔头 2010-08-13 23:00 回复
山西 Windows XP Firefox

我的是要审核的~~~

蛋卷
蛋卷 2010-08-14 01:17 回复
山东 Windows XP Internet Explorer

看看我进黑名单了么

冰剑
冰剑 MOD 2010-08-14 21:58 回复
湖南 Windows 7 Firefox

想进去告诉我一声,收到后我马上添加进去,哈哈。

阿修
阿修 2010-08-14 09:51 回复
河南 Windows 7 Firefox

这是个好办法

冰剑
冰剑 MOD 2010-08-14 21:58 回复
湖南 Windows 7 Firefox

现在几乎没看到什么SPAM信息了。

彼岸星辰
彼岸星辰 2010-08-14 19:20 回复
陕西 Windows XP Firefox

看样子你被spam强%#¥%……&*爆了?

冰剑
冰剑 MOD 2010-08-14 21:58 回复
湖南 Windows 7 Firefox

确实。。

laowi
laowi 2010-08-15 02:21 回复
北京 Windows 7 Chrome

我现在经常被无辜拦截 悲剧

冰剑
冰剑 MOD 2010-08-15 17:45 回复
湖南 Windows XP Chrome

在这里不会的不要SPAM就没人管你,我的地盘,小弟罩你,哈哈。

yetone
yetone 2010-08-15 08:48 回复
山东 Windows XP Chrome

俗话说君子报仇,十年不晚。我是来报昨日之仇的的的。。。。

冰剑
冰剑 MOD 2010-08-15 17:45 回复
湖南 Windows XP Chrome

昨天本来不想插入的,后来闲着无聊,所以你悲剧了。

yetone
yetone 2010-08-15 08:48 回复
山东 Windows XP Chrome

哈哈哈哈哈,第一次来哦

Ray
Ray 2010-08-15 15:20 回复
河北 Windows 7 Internet Explorer

很是强大啊!呵呵

冰剑
冰剑 MOD 2010-08-15 17:45 回复
湖南 Windows XP Chrome

你的也很强大,呵呵。

海天无影
海天无影 2010-08-15 16:22 回复
江苏 Windows XP Chrome

呵呵 你的“异步加载”真好玩
额 对了 我是海天 这段时间可能要用这个名字 具体原因到我博客看吧 还需要你们帮忙呢

冰剑
冰剑 MOD 2010-08-15 17:45 回复
湖南 Windows XP Chrome

好的,没问题,等你SEO弄完以后我再SQL全部改过来。

睿智小超人
睿智小超人 2010-08-15 18:53 回复
广东 Windows 7 Internet Explorer

现在最让我头痛的是英文spam,貌似没办法消灭

冰剑
冰剑 MOD 2010-08-15 23:34 回复
湖南 Windows 7 Firefox

英文的最好消灭了,安装默认的那个防SPAM插件就可以了,那个对英文的支持最好。

游子网络
游子网络 2010-08-16 00:36 回复
广东 Windows XP Firefox

垃圾评论真的很烦人,每天都要删很多。这是国人营销的恶习了

冰剑
冰剑 MOD 2010-08-16 02:43 回复
湖南 Windows 7 Firefox

是很烦人,比如你的昵称,明明叫游子,却还加个网络两个字,对于这些明明是想做博友的人,却总是在昵称中带点SEO,真不知道怎么处理。
呵呵,说重了点,不过我是说心里话。。

久酷
久酷 2010-08-16 18:21 回复
北京 Windows 7 Firefox

这个年代不知咋了,全部人工出来发spam

冰剑
冰剑 MOD 2010-08-16 19:13 回复
湖南 Windows 7 Firefox

人工的只能用黑名单来解决,大部分人工SPAM都是为了宣传网址,把网址加进黑名单里就没什么问题了。
这几天我都没收到旧的SPAM,新的到是有几个。

那个时间换算过来就是2012.12.21,你懂的,哈哈。

久酷
久酷 2010-08-16 19:14 回复
北京 Windows 7 Firefox

囧囧…… 我还要活到2112年呢

久酷
久酷 2010-08-16 18:23 回复
北京 Windows 7 Firefox

距离本博关闭的那个 是啥意思呀?

joyla
joyla 2010-08-16 19:37 回复
青海 Windows XP Chrome

我以前的博客甚至有上千个 一晚上!呵呵

MOPVHS
MOPVHS 2010-08-16 21:12 回复
浙江 Windows 7 Chrome

围观围观~~~

MOPVHS
MOPVHS 2010-08-16 21:13 回复
浙江 Windows 7 Chrome

哪里咧~~~~

MOPVHS
MOPVHS 2010-08-16 21:14 回复
浙江 Windows 7 Chrome

有了有了!!!

冰剑
冰剑 MOD 2010-08-16 21:15 回复
湖南 Windows 7 Firefox

不过要30天之内有评论而且要有cookie记录的才能看到效果,哈哈。
这个+1应用的不错吧。

MOPVHS
MOPVHS 2010-08-16 21:17 回复
浙江 Windows 7 Chrome

嗯嗯,非常有振奋人心的效果~~

冰剑
冰剑 MOD 2010-08-16 21:21 回复
湖南 Windows 7 Firefox

泪流满面啊,你的+1让我有的折腾,让我可以为博客除草了。
这些又有东西写了,哇哈哈。。。

MOPVHS
MOPVHS 2010-08-16 21:31 回复
浙江 Windows 7 Chrome

哈哈,快写快写,一定有N多人来围观~~~

冰剑
冰剑 MOD 2010-08-16 22:00 回复
湖南 Windows 7 Firefox

写完了,不过不详细。。

yetone
yetone 2010-08-16 21:21 回复
山东 Windows XP Chrome

我是来看你的+1效果的,结果还没有

yetone
yetone 2010-08-16 21:22 回复
山东 Windows XP Chrome

哇咔咔,有了,有了啊

yetone
yetone 2010-08-16 21:22 回复
山东 Windows XP Chrome

感觉超棒,赞一个!

冰剑
冰剑 MOD 2010-08-16 21:27 回复
湖南 Windows 7 Firefox

被围观了。。。 :roll:

浩子
浩子 2010-08-16 22:42 回复
贵州 Windows 7 Internet Explorer

换一篇试一试 :mrgreen:

我心飞翔
我心飞翔 2010-08-17 14:56 回复
河南 Windows XP Internet Explorer

你还真会折腾叫了。。。呵呵,想法不错

N
N 2010-08-17 15:24 回复
江苏 Windows XP Chrome

我的名字杯具了。。 :sad:

aggron
aggron 2010-08-23 14:12 回复
湖北 Windows XP Chrome

我也觉得垃圾评论里面一大堆看着很不爽,安装了一个验证码插件,清净了~

    目录
    移动设备上继续阅读