php中使用Akismet防止垃圾评论的代码 |
本文标签:Akismet,垃圾评论 然而,人无完人,插(件)无完插!Akismet也并非完美,最近, 我常在被Akismet评判为垃圾的留言中找到“好人”的留言,然而,有时时间长了就自动删除了,损失珍贵的友情和留言 。 别忘了修改代码中的 __YOUR_AKISMET_KEY__, __YOUR_WEBSITE_URL__ and __YOUR_NAME__ http://www.script-tutorials.com/akismet-spam-protection/ index.php 复制代码 代码如下: <? 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; } ?> source.zip |