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


Posted in PHP onJune 10, 2011

然而,人无完人,插(件)无完插!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

PHP 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
php之对抗Web扫描器的脚本技巧
Oct 01 PHP
用Simple Excel导出xls实现方法
Dec 06 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
php实现excel中rank函数功能的方法
Jan 20 PHP
Java中final关键字详解
Aug 10 PHP
php bootstrap实现简单登录
Mar 08 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 PHP
php中通过虚代理实现延迟加载的实现代码
Jun 10 #PHP
php获取后台Job管理的实现代码
Jun 10 #PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 #PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 #PHP
PHP网站备份程序代码分享
Jun 10 #PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 #PHP
PHP中遍历stdclass object的实现代码
Jun 09 #PHP
You might like
PHP获取网站域名和地址的代码
2008/08/17 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
jQuery中get和post方法传值测试及注意事项
2014/08/08 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
关于javascript事件响应的基础语法总结(必看篇)
2016/12/26 Javascript
vue.js框架实现表单排序和分页效果
2017/08/09 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
Javascript的this详解
2019/03/23 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
介绍Python的Django框架中的QuerySets
2015/04/20 Python
Python三级菜单的实例
2017/09/13 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
Python类成员继承重写的实现
2020/09/16 Python
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
小学敬老月活动方案
2014/02/11 职场文书
保险经纪人求职信
2014/03/11 职场文书
理财学专业自荐书
2014/06/28 职场文书
基层党支部承诺书
2015/04/30 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
ICOM R71E和R72E图文对比解说
2022/04/07 无线电