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 相关文章推荐
PHP 中文乱码解决办法总结分析
Jul 30 PHP
通过php删除xml文档内容的方法
Jan 23 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
php利用header函数下载各种文件
Aug 24 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHP正则验证字符串是否为数字的两种方法并附常用正则
Feb 27 PHP
php use和include区别总结
Oct 13 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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默认安装产生系统漏洞
2006/10/09 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
js控制框架刷新
2008/08/01 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
简单谈谈json跨域
2016/03/13 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
浅谈Node.js 中间件模式
2018/06/12 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
简单说说tomcat的配置
2013/05/28 面试题
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
服务理念口号
2014/06/11 职场文书
平面设计专业求职信
2014/08/09 职场文书
2014年度思想工作总结
2014/11/27 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
超级礼物观后感
2015/06/15 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
Java如何实现树的同构?
2021/06/22 Java/Android
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技