主页 » WordPress » wordpress简单一招防Spam
wordpress简单一招防Spam
2008-12-13gao

wordpress作为一个强大的blog系统,已经拥有了大量的用户,(省略800字…)而其带来的垃圾评论,也就是Spam也是越来越严重,特别是流量大一点的站. 防御Spam目前有很多方法,插件无疑是最多的选择,但是再强大的插件也有失误的时候,而且还会拖慢你的网站,前段时间在网上搜到了一个简单有效的防Spam的方法,就是给你的评论加上一个简单的加法算术题.
方法如下:
在WP主目录下找到wp-comments-post.php
在67行处加上(注意,如果是非2.7的,请看它上面的内容是 wp_die( __(‘Error: please enter a valid email address.’) ); } )
if ( !$user->ID ) {
$a = trim($_POST[a]);
$b = trim($_POST[b]);
$sub = trim($_POST[sub]);
if((($a+$b)!=$sub)|| empty($sub)){
wp_die( __('错误: 请输入正确的算术题结果.') );
}
}
然后在主题comments.php文件中的网址输入框下面加上
<p> <? $a=rand(0,8); $b=rand(8,12); ?> <input type="text" name="sub" tabindex="4" id="sub" size="22"><input type="hidden" name="a" value="<?=$a?>" /><input type="hidden" name="b" value="<?=$b?>" /> <label for="sub"> 问题: <?=$a?>+<?=$b?>=? (必填)</label></p>
最后修改在你主题的style.css你加上#sub{}的效果。OK.
说下该方法的缺点 每次更新WP版本时都要修改wp-comments-post.php文件,
不能防止人肉Spam,如果你站点的垃圾真的很多,还是推荐使用插件
呵呵,看那了你通告的方法,弄好了!谢谢
你好,我添加后出现情况,请看我博客
我用的inove主题,也试一试
我使用iNove主题,请问第二部中的网址输入框的代码在哪里啊?
你找到tabindex=”3″ ,在该代码的最后插入
....tabindex="3".........在这后面添加了,但是现在有个问题。
不是很美观。原因是,输入框的长度不统一,并且和上一个输入框靠的太紧。
请问怎样解决?
或者能不能把它添加到 提交评论 旁边的那个位置?
谢谢。
你在代码的input后面加上class=”textfield”
参照邮箱用户名的写法
研究了半天,还是搞不定,你就帮人帮到底,具体些告诉我该怎么办好吗?
谢谢。
你在那个代码的第二行加个 class=”textfield” 就行了
显示出来的是乱码啊
后台编码是UTF-8
请问是怎么回事啊?
建议使用DreamWeaver8 UTF-8无BOM保存,其他软件有中文的话都可能会出现乱码
这样还方便一些,有的用验证码,根本看不清。
我在你這裏獲得靈感, 改良了設計.
有空來指導一下, 非常謝謝你!
是吗,恭喜啊,有问题尽管说,不用客气
我的程式用 js, 當瀏覽器禁用 js, 就無效了!
我是想把 js 代碼改為 php, 這有點麻煩… 能不能請你幫我看看?
JS我也不大懂,你可以参考K2主题的方法
http://tech.163.com/07/0824/18/3MMCCH2T00092CHG.html
现在好像折腾对了
不过好像显示出来的是乱码哈
怎么弄?请赐教一下
UTF-8无BOM保存吗?或者直接去后台修改就不会乱了
求教 消除乱码
怎么修改后台。。。
不懂啊。。
后台修改主题,WP文件用DW8修改
这次好了
多谢啦
谢谢gao,一直想要这样的防垃圾模式,又不想装插件~帮大忙了。 对,sub该放在CSS的哪里?我找不到回复框所用的CSS位置。。
太客气了,看你那里也修改好了
呵呵!那你就不要验证嘛~~
只是防机器,没有百分百的方法
这个效果不错,以后我也试试.
没有必要防垃圾留言。页面上的广告就广告去吧,一个博客。
这东西就像牛皮癣,虽然不致命,但怎么看怎么不舒服
这个不错 呵呵