相信很多站長也和我一樣,討厭哪些無聊的垃圾評論,怎么簡單的防止哪些機器人發布的垃圾評論呢?來給你的Typecho主題用純代碼添加算術驗證碼功能吧。
- 原文來源:詳情
Typecho的垃圾評論還是比較多的,除了插件外,還可以通過PHP函數實現簡單的算術驗證碼。
第一步function.php如下函數
//算術驗證評論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>的計算結果:</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();?>
如果覺得100以內太難了,請修復function.php中添加的代碼中rand后面的數字范圍
當然,用插件也是一種有趣的方式
在前端(F12)把num元素刪掉,就不用輸入驗證碼也可以評論了............
就很尷尬,
有用!!!謝謝啦 ?棒棒的? ?微笑?