php中使用Akismet防止垃圾评论的代码

2018-09-07 22:18

阅读:377

  然而,人无完人,插(件)无完插!Akismet也并非完美,最近, 我常在被Akismet评判为垃圾的留言中找到“好人”的留言,然而,有时时间长了就自动删除了,损失珍贵的友情和留言。
别忘了修改代码中的 __YOUR_AKISMET_KEY__, __YOUR_WEBSITE_URL__ and __YOUR_NAME__

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


评论


亲,登录后才可以留言!