北极寒流 » 网络资源 » 给WordPress评论框,投稿页面添加算术验证码功能 - 2013.09.12

给WordPress评论框,投稿页面添加算术验证码功能

给wordpress增加算术验证码功能可以在一定程度上防止垃圾评论。给投稿页面增加算术验证码则可以阻止机器人投稿。下面先介绍怎么给wordpress评论增加算术验证码。

打开网站根目录下的 wp-comments-post.php,查找:
if ( '' == $comment_content )
在此代码的上面增加:
if ( !$user->ID ) {
$aaa = trim($_POST[aaa]);
$bbb = trim($_POST[bbb]);
$subab = trim($_POST[subab]);
if((($aaa+$bbb)!=$subab)|| empty($subab)){
wp_die( '错误提示:请正确输入的两数字相加的结果.' );
}
}

然后在主题的comments.php文件中找到评论表单的位置,在适当的地方插入如下代码:
我的是在<!– comment input –>上添加以下代码
<?php if (!$user_ID) : ?>
<?php $aaa=rand(0,5); $bbb=rand(3,9); ?>
<p><label>验证码:</label><input type="text" name="subab" id="subab" size="2″ tabindex="5″ style="width:50px" />=<?php echo $aaa; ?>+<?php echo $bbb; ?><small><span style="color:red;">(必填)</span></small><span>请输入两数相加的结果.</span>
<input name="aaa" value="<?php echo $aaa; ?>" type="hidden" />
<input name="bbb" value="<?php echo $bbb; ?>" type="hidden" /></p>
<?php endif; ?>
修改后的文件保存的编码必须为utf-8,否则会出现中文口字了

折腾完给wordpress评论增加算术验证码,那么再折腾一下给wordpress的投稿页面增加算术验证码功能。我的投稿功能代码是采用该篇文章中的代码:http://www.articn.com/post/261.html

在投稿代码中的

if ( empty($content) || mb_strlen($content) > 3000 || mb_strlen($content) < 100) {
wp_die('内容必须填写,且长度不得超过3000字,不得少于100字。<a href="'.$current_url.'">点此返回</a>');
}

下面增加

if ( !$user->ID ) {
$sum=$_POST['sum'];
switch($sum){
//得到正确的计算结果则直接跳出
case $_POST['num1']+$_POST['num2']:break;
//未填写结果时的错误讯息
case null:wp_die('错误: 你还没有填写算术结果呢!<a href="'.$current_url.'">点此返回</a>');break;
//计算错误时的错误讯息
default:wp_die('错误: 哎呀,这样的算术题你都能算错?重试一下吧!<a href="'.$current_url.'">点此返回</a>');
}
}

然后再在投稿框的某个位置加上(我是加在“分类”的下面)

<?php if (!$user_ID) : ?>
<?php
$num1=rand(0,9);
$num2=rand(0,9);
echo"<div class='row'>"
."<label for='math' class='small'><span style=”color:red;”>验证码(必填):</span></label>"
."$num1 + $num2 = <input type='text' name='sum' class='math_textfield' value='' tabindex='1'>"
."<input type='hidden' name='num1' value='$num1'>"
."<input type='hidden' name='num2' value='$num2'>"
."<label for='math' class='small'> 请输入两数之和</label>"
."</div>";
?>
<?php endif; ?>

12

给WordPress评论框,投稿页面添加算术验证码功能

分享到:

最受欢迎的