禁止黑名单的评论

最近为 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

AI 评论

由 Google AI Gemini Pro 生成

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

添加评论

已有 83 条评论

  • 万戈
    万戈 上海

    呵呵,骨头软件,贱骨头

    • 冰剑
      冰剑 MOD 湖南

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

  • 逸冰
    逸冰 浙江

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

    • 冰剑
      冰剑 MOD 湖南

      你不会还一直留着吧?

  • insect
    insect 陕西

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 搜搜
    搜搜 浙江

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 大灰很
    大灰很 山东

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 浩子
    浩子 贵州

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 简单
    简单 四川

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 简单
    简单 四川

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

  • 随缘
    随缘 安徽

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 土狼妹妹
    土狼妹妹 北京

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 海天无影
    海天无影 江苏

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 寨主
    寨主 浙江

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

    • 冰剑
      冰剑 MOD 湖南

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

  • MOPVHS
    MOPVHS 浙江

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

    • 冰剑
      冰剑 MOD 湖南

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

      • MOPVHS
        MOPVHS 浙江

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

  • Zhu
    Zhu 山西

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

    • 冰剑
      冰剑 MOD 湖南

      汗,那天是世界末日。

  • ucer
    ucer 广东

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

  • 集趣
    集趣 湖南

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

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

    • 冰剑
      冰剑 MOD 湖南

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

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

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

      • 集趣
        集趣 湖南

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

        • 冰剑
          冰剑 MOD 湖南

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

  • 天边鱼
    天边鱼 辽宁

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 山头人
    山头人 西班牙

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 平平
    平平 江苏

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

  • 蛋卷
    蛋卷 山东

    看看我进黑名单了么

    • 冰剑
      冰剑 MOD 湖南

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

  • 阿修
    阿修 河南

    这是个好办法

    • 冰剑
      冰剑 MOD 湖南

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

  • laowi
    laowi 北京

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

    • 冰剑
      冰剑 MOD 湖南

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

  • yetone
    yetone 山东

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

    • 冰剑
      冰剑 MOD 湖南

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

  • yetone
    yetone 山东

    哈哈哈哈哈,第一次来哦

  • Ray
    Ray 河北

    很是强大啊!呵呵

    • 冰剑
      冰剑 MOD 湖南

      你的也很强大,呵呵。

  • 海天无影
    海天无影 江苏

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 睿智小超人
    睿智小超人 广东

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 游子网络
    游子网络 广东

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

    • 冰剑
      冰剑 MOD 湖南

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

  • 久酷
    久酷 北京

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

    • 冰剑
      冰剑 MOD 湖南

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

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

      • 久酷
        久酷 北京

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

  • 久酷
    久酷 北京

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

  • joyla
    joyla 青海

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

  • MOPVHS
    MOPVHS 浙江

    有了有了!!!

    • 冰剑
      冰剑 MOD 湖南

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

      • MOPVHS
        MOPVHS 浙江

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

        • 冰剑
          冰剑 MOD 湖南

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

          • MOPVHS
            MOPVHS 浙江

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

            • 冰剑
              冰剑 MOD 湖南

              写完了,不过不详细。。

  • yetone
    yetone 山东

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

  • yetone
    yetone 山东

    哇咔咔,有了,有了啊

  • 我心飞翔
    我心飞翔 河南

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

  • N
    N 江苏

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

  • aggron
    aggron 湖北

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