小墙防spam优化之兼容app提交评论

我最近真是没有时间码代码呀,刚好声哥提到我网站在手机下不能提交评论,于是检查了一下,发现是之前我改写小墙的时候写反了一个参数,现在整理一下,把完善后的代码共享给大家.

故事背景是这样的:

防spam小墙是Willin大师发明的,可以阻挡大部分机器spam,但是由于它改写textarea并加入对应的检验机制,导致wordpress手机客户端无法提交评论,(因为wordpress app中提交评论时表单用的是默认的name)

我改写是出于两个目的,一是没时间上网,用app回复评论实在太方便,二是关了小墙后实在多了许多spam

于是我思考了片刻,想到在验证机制里加入对手机端的排除.

由于我手机没越狱所以不能直接改写app的内容,而在官方文档里也没有找到app特有的属性(用来排除),所以只好用wp_is_mobile来判断.

这个判断确实较为笼统,好在目前机器spam也没见过用手机ua群发的,所以这样写也没有问题,好了废话说完了下面是代码

   /**
*spamwall-app-compatibility
* coder:
* 2013-10-15
*/

class anti_spam { function anti_spam() { if ( !current_user_can('level_0') ) { add_action('template_redirect', array($this, 'w_tb'), 1); add_action('init', array($this, 'gate'), 1); add_action('preprocess_comment', array($this, 'sink'), 1); } } function w_tb() { if ( is_singular() ) { ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#", "textarea$1name=$2Yourid$3$4/textarea><textarea name=\"comment\" cols=\"50\" rows=\"4\" style=\"display:none\"></textarea>",$input);') ); } } function gate() { ( !empty($_POST['Yourid']) && empty($_POST['comment']) || wp_is_mobile() //排除对手机端的验证 ) ? $_POST['comment'] = $_POST['Yourid'] : $_POST['spam_confirmed'] = 1; } function sink( $comment ) { if ( !empty($_POST['spam_confirmed']) || wp_blacklist_check($comment['comment_author'],$comment['comment_author_email'],$comment['comment_author_url'], $comment['comment_content'], $comment['comment_author_IP'], $comment['comment_agent'] ) //以前写过,这个是直接拒绝黑名单用户评论,详见http://xiaohudie.net/code/fuck-spam.html ) { add_filter('preprocess_comment', create_function('', 'err( __("垃圾评论") );' ));//如果没写过err函数的就把''内改成die("垃圾评论"); $is_ping = in_array( $comment['comment_type'], array('pingback', 'trackback') ); if( $is_ping) { die(); } } return $comment; } } new anti_spam();
88 Comments

Name *

E-mail *

Website

  1. 鲜活

    现在的垃圾评论是越来越猖獗了

  2. 铁壶

    这个要了解下了哦

  3. hu

    啊,8縮進。

    • 小蝴蝶

      @hu 啊,你玩儿完英语又玩儿正体字了

      • hu

        @小蝴蝶 很多人不知道正體字,哈哈。

        ps:links裏面的switch中間冒出來一個}

  4. 好书推荐

    几年没更新了~~~

  5. 松露之家

    自己写代码更好,

  6. Dick Wu

    催更,受不了了!