首页 » 建站手册 » Typecho纯代码给你的评论添加算术验证

Typecho纯代码给你的评论添加算术验证

谷歌已收录,更新于2018年12月27日; 如遇到问题,请留言及时通知站长; 欢迎加入 三生三世,讨论各种问题!

说明

很多人都有被全英文类似评论的经历,站长最讨厌这类情况。以往,我们都通过插件反垃圾评论;或者极验证啥的,用户验证比较麻烦,比如手机端这类的。站长这里提供一种100以内加法验证,合理有效防止机器垃圾评论。具体实现原理,访客进入页面,php函数首先生成两个随机数,然后把你给的答案比对。如果没填写验证码,反馈无验证码;如果验证码错误,反馈验证码错误。所以,大致上,一个函数实现随机数生成以及前台表单生成,一个函数用于验证,另一个函数用于反馈给评论结果。

function.php

请打开主题function.php文件,在第二行或者最后一行等合理为止插入如下代码

//算术验证评论
function themeInit($comment){
$comment = spam_protection_pre($comment);
}
function spam_protection_math(){
    $num1=rand(1,49);
    $num2=rand(1,49);
    echo "<label for=\"math\">请输入<code>$num1</code>+<code>$num2</code>的计算结果:</label>\n";
    echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\" style=\"width:218px\" placeholder=\"计算结果:\">\n";
    echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
    echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
}
function spam_protection_pre($comment, $post, $result){
    $sum=$_POST['sum'];
    switch($sum){
        case $_POST['num1']+$_POST['num2']:
        break;
        case null:
        throw new Typecho_Widget_Exception(_t('对不起: 请输入验证码。<a href="javascript:history.back(-1)">返回上一页</a>','评论失败'));
        break;
        default:
        throw new Typecho_Widget_Exception(_t('对不起: 验证码错误,请<a href="javascript:history.back(-1)">返回</a>重试。','评论失败'));
    }
    return $comment;
}

comments.php

然后打开主题comments.php文件,在适当为止插入如下代码,一般插入在提交评论按钮前;当然访客提交评论跟登录用户提交评论一共有两个地方,站长选择在访客评论提交按钮前插入如下代码。这样,访客评论需要算术验证,站长就不用验证了!

<?php spam_protection_math();?>

Typecho纯代码给你的评论添加算术验证

css相关

关于css部分,由于每个人主题不一样,这里就无法给出统一css代码了。可以自行F12,通过float:left或者float:right调整布局,关于宽度之类的,请直接在function.php文件中插入的算术验证代码中修改,代码中给了示例style="width:218px"

结果展示

站长只给访客做了算术验证处理,这样方便回复你们,省了计算过程!如果你们觉得100以内太难了,请修复function.php中添加的代码中rand后面的数字范围。

Typecho纯代码给你的评论添加算术验证

一个只会魔改主题,而不会制作主题的站长,专业扒各种网站的各种样式。希望每一位来到这里的访客,都能拿到你们需要的资源!

发表评论

已有 75 条评论

  1. iqanipjutalo iqanipjutalo说道:

    [url=http://mewkid.net/who-is-xandra/]Buy Amoxil[/url] Amoxicillin Online muc.nqfx.black1ce.com.sou.ry http://mewkid.net/who-is-xandra/

  2. urinali urinali说道:

    [url=http://mewkid.net/who-is-xandra/]Buy Amoxicillin Online[/url] Amoxicillin Online qgq.tlzm.black1ce.com.xjr.oh http://mewkid.net/who-is-xandra/

  3. epofaqorn epofaqorn说道:

    [url=http://mewkid.net/who-is-xandra/]Amoxicillin Online[/url] Amoxicillin 500mg Dosage olp.tonj.black1ce.com.iwn.dn http://mewkid.net/who-is-xandra/

  4. agusjata agusjata说道:

    [url=http://mewkid.net/who-is-xandra/]Amoxicillin[/url] 18 jeg.oslw.black1ce.com.zhb.er http://mewkid.net/who-is-xandra/

  5. ohetoxi ohetoxi说道:

    [url=http://mewkid.net/who-is-xandra/]Amoxicillin 500 Mg[/url] Amoxicillin oju.mkop.black1ce.com.nei.bf http://mewkid.net/who-is-xandra/

  6. ovaquneeotena ovaquneeotena说道:

    [url=http://mewkid.net/who-is-xandra/]Amoxicillin Online[/url] Amoxil zmm.ugpq.black1ce.com.qgb.jr http://mewkid.net/who-is-xandra/

  7. asjipekozqaf asjipekozqaf说道:

    [url=http://mewkid.net/who-is-xandra/]Amoxicillin Without Prescription[/url] Buy Amoxicillin Online gls.gxzn.black1ce.com.zdl.pj http://mewkid.net/who-is-xandra/

  8. anacufemeya anacufemeya说道:

    [url=http://mewkid.net/who-is-xandra/]Buy Amoxicillin Online[/url] Amoxicillin Online tcc.nxnt.black1ce.com.xpg.sg http://mewkid.net/who-is-xandra/

  9. ubekevayiteh ubekevayiteh说道:

    [url=http://mewkid.net/who-is-xandra/]Amoxil Dose For 55 Pounds[/url] Buy Amoxicillin Online hqq.qkhs.black1ce.com.nxn.ey http://mewkid.net/who-is-xandra/

  10. oyojayawil oyojayawil说道:

    [url=http://mewkid.net/who-is-xandra/]Buy Amoxicillin Online Without Prescription[/url] Buy Amoxicillin nis.vigj.black1ce.com.syl.yk http://mewkid.net/who-is-xandra/

最近动态查看

    利用短代码实现了文章正文任意位置插入[googleads],前端自动变为谷歌广告。这样,文章过长时,可以随意插入广告了。
返回主页看更多
赏杯咖啡给站长 支付宝 扫一扫