相信很多站長也和我一樣,討厭哪些無聊的垃圾評論,怎么簡單的防止哪些機(jī)器人發(fā)布的垃圾評論呢?來給你的Typecho主題用純代碼添加算術(shù)驗(yàn)證碼功能吧。
- 原文來源:詳情
Typecho的垃圾評論還是比較多的,除了插件外,還可以通過PHP函數(shù)實(shí)現(xiàn)簡單的算術(shù)驗(yàn)證碼。
第一步function.php如下函數(shù)
//算術(shù)驗(yàn)證評論by minirizhi.com
function themeInit($comment){
$comment = spam_protection_pre($comment, $post, $result);
}
function spam_protection_math(){
$num1=rand(1,49);
$num2=rand(1,49);
echo "<label for=\"math\">請輸入<code>$num1</code>+<code>$num2</code>的計算結(jié)果:</label>\n";
echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\" style=\"width:218px\" placeholder=\"計算結(jié)果:\">\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('對不起: 請輸入驗(yàn)證碼。<a href="javascript:history.back(-1)">返回上一頁</a>','評論失敗'));
break;
default:
throw new Typecho_Widget_Exception(_t('對不起: 驗(yàn)證碼錯誤,請<a href="javascript:history.back(-1)">返回</a>重試。','評論失敗'));
}
return $comment;
}
第二步comments.php添加函數(shù)
打開主題comments.php文件,在適當(dāng)為止插入如下代碼:
<?php spam_protection_math();?>
如果覺得100以內(nèi)太難了,請修復(fù)function.php中添加的代碼中rand后面的數(shù)字范圍
當(dāng)然,用插件也是一種有趣的方式