• 技术文章 >php教程 >PHP源码

    使用 Akismet 防止垃圾评论

    PHP中文网PHP中文网2016-05-25 17:14:00原创538
    Akismet是一个优秀的防Spam垃圾留言的优秀插件,绝大多数wordpress blogger都在使用,有了akismet之后,基本上不用担心垃圾留言的烦恼了。然而,人无完人,插(件)无完插!Akismet也并非完美,最近, 我常在被Akismet评判为垃圾的留言中找到“好人”的留言,然而,有时时间长了就自动删除了,损失珍贵的友情和留言。

    别忘了修改代码中的 __YOUR_AKISMET_KEY__, __YOUR_WEBSITE_URL__ and __YOUR_NAME__

    <?
    
    require_once ('classes/Akismet.class.php');
    
    class MySpamProtection {
    
     // variables
     var $sMyAkismetKey;
     var $sWebsiteUrl;
     var $sAuthName;
     var $sAuthEml;
     var $sAuthUrl;
     var $oAkismet;
    
     // constructor
     public function MySpamProtection() {
     // set necessary values for variables
     $this->sMyAkismetKey = '__YOUR_AKISMET_KEY__';
     $this->sWebsiteUrl = '__YOUR_WEBSITE_URL__';
     $this->sAuthName = '__YOUR_NAME__';
     $this->sAuthEml = '';
     $this->sAuthUrl = '';
    
     // Akismet initialization
     $this->oAkismet = new Akismet($this->sWebsiteUrl ,$this->sMyAkismetKey);
    $this->oAkismet->setCommentAuthor($this->sAuthName);
    $this->oAkismet->setCommentAuthorEmail($this->sAuthEml);
    $this->oAkismet->setCommentAuthorURL($this->sAuthUrl);
    }
    
     public function isSpam($s) {
     if (! $this->oAkismet) return false;
    
    $this->oAkismet->setCommentContent($s);
     return $this->oAkismet->isCommentSpam();
    }
    }
    
    echo <<<EOF
    <style type="text/css">
    form div {
    margin:10px;
    }
    form label {
    width:90px;
    float:left;
    display:block;
    }
    </style>
    <form action=""method="post">
     <div><label for="author">Author</label><input id="author"name="author"type="text"value=""/></div>
     <div><label for="comment">Comment</label><textarea id="comment"name="comment"cols="20"rows="4"></textarea></div>
     <div><input name="submit"type="submit"value="Send"/></div>
    </form>
    EOF;
    
    if ($_POST) {
     // draw debug information
     echo '<pre>';
    print_r($_POST);
     echo '</pre>';
    
     // obtain sent info
     $sPostAuthor = $_POST['author'];
     $sCommentComment = $_POST['comment'];
    
     // check for spam
     $oMySpamProtection = new MySpamProtection();
     $sAuthorCheck = ($oMySpamProtection->isSpam($sPostAuthor)) ? '"Author"marked as Spam' : '"Author"not marked as Spam';
     $sCommentCheck = ($oMySpamProtection->isSpam($sCommentComment)) ? '"Comment"marked as Spam' : '"Comment"not marked as Spam';
    
     echo $sAuthorCheck . '<br />' . $sCommentCheck;
    }
    
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Akismet 防止 垃圾 评论
    上一篇:PHP连接mySQL 下一篇:多维数组去重和查找

    相关文章推荐

    • 解决json_encode 函数中文被编码成 null的办法• php面向对象之工厂模式示例• 常用的正则表达试• php经典分页函数_适合初学才• 做项目过程中学到的PHP知识收集

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网