禁止黑名单的评论

68 Comments

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

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

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

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

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

废话了那么多,开始正题,我的评论 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》,其作用就是把评论列为垃圾的时候,会把相关信息自动添加到黑名单中。

已有 68 条评论 »

  1. 万戈
    万戈 2010-08-11 07:04:35

    呵呵,骨头软件,贱骨头

  2. 逸冰
    逸冰 2010-08-11 09:12:34

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

  3. insect
    insect 2010-08-11 09:23:51

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

  4. 搜搜
    搜搜 2010-08-11 09:24:12

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

  5. 大智若鲁
    大智若鲁 2010-08-11 10:56:45

    不管怎么说,支持下

  6. 大灰很
    大灰很 2010-08-11 11:18:11

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

  7. 随缘
    随缘 2010-08-11 13:21:43

    这个好,我去试试

  8. 浩子
    浩子 2010-08-11 13:35:55

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

  9. 冰剑
    冰剑 2010-08-11 14:10:10

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

    @逸冰
    你不会还一直留着吧?

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

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

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

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

  10. 简单
    简单 2010-08-11 14:26:38

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

  11. 简单
    简单 2010-08-11 14:27:03

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

  12. 冰剑
    冰剑 2010-08-11 14:39:05

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

  13. 随缘
    随缘 2010-08-11 15:37:26

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

  14. 土狼妹妹
    土狼妹妹 2010-08-11 15:50:27

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

  15. 冰剑
    冰剑 2010-08-11 15:56:55

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

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

  16. 海天
    海天 2010-08-11 17:19:48

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

  17. 寨主
    寨主 2010-08-11 19:52:55

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

  18. 冰剑
    冰剑 2010-08-11 20:01:17

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

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

  19. MOPVHS
    MOPVHS 2010-08-11 20:24:39

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

  20. 冰剑
    冰剑 2010-08-11 21:10:42

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

  21. MOPVHS
    MOPVHS 2010-08-11 21:53:12

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

  22. Zhu
    Zhu 2010-08-12 00:02:51

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

  23. 冰剑
    冰剑 2010-08-12 00:18:44

    @Zhu
    汗,那天是世界末日。

  24. ucer
    ucer 2010-08-12 02:34:21

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

  25. 集趣
    集趣 2010-08-12 10:45:37

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

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

  26. 天边鱼
    天边鱼 2010-08-12 13:10:19

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

  27. 冰剑
    冰剑 2010-08-12 13:37:43

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

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

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

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

  28. 山头人
    山头人 2010-08-12 19:28:07

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

  29. 平平
    平平 2010-08-13 19:33:27

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

  30. 冰剑
    冰剑 2010-08-13 22:55:43

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

    @平平
    看来你闲得很。。

  31. 笔头
    笔头 2010-08-13 23:00:23

    我是要审核的~

  32. 笔头
    笔头 2010-08-13 23:00:39

    我的是要审核的~~~

  33. 蛋卷
    蛋卷 2010-08-14 01:17:49

    看看我进黑名单了么

  34. 阿修
    阿修 2010-08-14 09:51:29

    这是个好办法

  35. 彼岸星辰
    彼岸星辰 2010-08-14 19:20:18

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

  36. 冰剑
    冰剑 2010-08-14 21:58:41

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

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

    @彼岸星辰
    确实。。

  37. laowi
    laowi 2010-08-15 02:21:45

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

  38. yetone
    yetone 2010-08-15 08:48:22

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

  39. yetone
    yetone 2010-08-15 08:48:39

    哈哈哈哈哈,第一次来哦

  40. 集趣
    集趣 2010-08-15 09:51:50

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

  41. Ray
    Ray 2010-08-15 15:20:58

    很是强大啊!呵呵

  42. 宿迁学院论坛
    宿迁学院论坛 2010-08-15 16:22:13

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

  43. 冰剑
    冰剑 2010-08-15 17:45:02

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

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

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

    @Ray
    你的也很强大,呵呵。

    @宿迁学院论坛
    好的,没问题,等你SEO弄完以后我再SQL全部改过来。

  44. 睿智小超人
    睿智小超人 2010-08-15 18:53:51

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

  45. 冰剑
    冰剑 2010-08-15 23:34:36

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

  46. 游子网络
    游子网络 2010-08-16 00:36:08

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

  47. 冰剑
    冰剑 2010-08-16 02:43:20

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

  48. 久酷
    久酷 2010-08-16 18:21:59

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

  49. 久酷
    久酷 2010-08-16 18:23:24

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

  50. 冰剑
    冰剑 2010-08-16 19:13:49

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

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

  51. 久酷
    久酷 2010-08-16 19:14:50

    @冰剑
    囧囧…… 我还要活到2112年呢

  52. joyla
    joyla 2010-08-16 19:37:37

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

  53. MOPVHS
    MOPVHS 2010-08-16 21:12:22

    围观围观~~~

  54. MOPVHS
    MOPVHS 2010-08-16 21:13:59

    哪里咧~~~~

  55. MOPVHS
    MOPVHS 2010-08-16 21:14:15

    有了有了!!!

  56. 冰剑
    冰剑 2010-08-16 21:15:53

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

  57. MOPVHS
    MOPVHS 2010-08-16 21:17:10

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

  58. 冰剑
    冰剑 2010-08-16 21:21:36

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

  59. yetone
    yetone 2010-08-16 21:21:47

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

  60. yetone
    yetone 2010-08-16 21:22:09

    哇咔咔,有了,有了啊

  61. yetone
    yetone 2010-08-16 21:22:35

    感觉超棒,赞一个!

  62. 冰剑
    冰剑 2010-08-16 21:27:38

    @yetone
    被围观了。。。 :roll:

  63. MOPVHS
    MOPVHS 2010-08-16 21:31:42

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

  64. 冰剑
    冰剑 2010-08-16 22:00:47

    @MOPVHS
    写完了,不过不详细。。

  65. 浩子
    浩子 2010-08-16 22:42:23

    换一篇试一试 :mrgreen:

  66. 我心飞翔
    我心飞翔 2010-08-17 14:56:36

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

  67. N
    N 2010-08-17 15:24:45

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

  68. aggron
    aggron 2010-08-23 14:12:12

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