然而,人无完人,插(件)无完插!Akismet也并非完美,最近, 我常在被Akismet评判为垃圾的留言中找到“好人”的留言,然而,有时时间长了就自动删除了,损失珍贵的友情和留言。
别忘了修改代码中的 YOUR_AKISMET_KEY,YOUR_WEBSITE_URL and YOUR_NAME__
http://www.script-tutorials.com/akismet-spam-protection/
index.PHP
<div class="codetitle"><a style="CURSOR: pointer" data="77256" class="copybut" id="copybut77256" onclick="doCopy('code77256')"> 代码如下:@H_301_5@<div class="codebody" id="code77256">
<?
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;
}
<form action="" method="post">
EOF;
if ($_POST) {
// draw debug information
echo '';
';
print_r($_POST);
echo '
// 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 . '
' . $sCommentCheck;
}
?>
@H301_5@ source.zip