WordPress登录页添加简易数字运算验证码

自然 2019年9月3日09:36:32 评论 46

最近,自然博客经常遭到恶意注册。用户管理界面可以看见很多乱七八糟的用户名以及一些完全无法分辨的注册邮箱。为了解决这一问题,自然首先想到的是引入登录验证码机制,其次是手动加代码的形式来搞定。出于不像使用插件的脑洞指引下,自然选择了使用代码。

Wordpress登录页添加简易数字运算验证码

经过大量的查找,在简单部署和实用性的平衡下,自然选择了这个建议算数验证码。对于真正的大神而言,而已注册时无法阻挡的,除非关闭注册。所以自然选择了这个部署简单、实用、高效的验证方式。

我们只需要将代码加入当前主题根目录下functions.php里面即可:

//后台登陆数学验证码
function myplugin_add_login_fields() {
//获取两个随机数, 范围0~9
$num1=rand(0,9);
$num2=rand(0,9);
//最终网页中的具体内容
    echo "<p><label for='math' class='small'>验证码</label><br /> $num1 + $num2 = ?<input type='text' name='sum' class='input' value='' size='25' tabindex='4'>"
."<input type='hidden' name='num1' value='$num1'>"
."<input type='hidden' name='num2' value='$num2'></p>";
}
add_action('login_form','myplugin_add_login_fields');
function login_val() {
$sum=$_POST['sum'];//用户提交的计算结果
switch($sum){
//得到正确的计算结果则直接跳出
case $_POST['num1']+$_POST['num2']:break;
//未填写结果时的错误讯息
case null:wp_die('错误: 请输入验证码.');break;
//计算错误时的错误讯息
default:wp_die('错误: 验证码错误,请重试.');
}
}
add_action('login_form_login','login_val');
weinxin
网科文媒
快来关注一下,你想要的这里都有喔!
自然

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: