zlprime zlprime
  • 首页
  • 朝花夕拾
    • 摄影
    • 读书
    • 生活
    • 随笔
  • 技能分享
    • Tekla
    • WordPress
  • 留言板
  • 友情链接
首页 › Wordpress › 为WordPress登录页面添加算术验证码

为WordPress登录页面添加算术验证码

Stone
11月前Wordpress
376 0 0

为WordPress的登录注册页面添加一个验证码,可以有效防止WordPress的后台被暴力破解。WordPress中有插件帮我们实现了此功能。但除了安装插件,我们也可以直接在主题的functions.php文件中,加入自定义代码,来实现这个功能。而且样式完美兼容。

代码

只需要在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('错误: 验证码错误,请重试.');
}
}
function add_security_question_fields() {
//获取两个随机数, 范围0~9
$num1=rand(0,9);
$num2=rand(0,9);
//最终网页中的具体内容
echo "<p><label for='math' class='small'>验证码:$num1 + $num2 = ? </label><input type='text' name='sum' class='input' value='' size='25'>"
."<input type='hidden' name='num1' value='$num1'>"
."<input type='hidden' name='num2' value='$num2'></p>";}
add_action('register_form','add_security_question_fields');
add_action( 'register_post', 'add_security_question_validate', 10, 3 );
function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {
$sum=$_POST['sum'];//用户提交的计算结果
switch($sum){
//得到正确的计算结果则直接跳出
case $_POST['num1']+$_POST['num2']:break;
//未填写结果时的错误讯息
case null:wp_die('错误:请输入验证码!');break;
//计算错误时的错误讯息
default:wp_die('错误:验证码错误,请重试!');}}
add_action( 'add_security_question','register_form' );
add_action('login_form_login','login_val');

实现效果

登录验证码

如果验证码错误,则会给出提示:

错误提示
wordpress
0
本文系作者 @Stone 原创发布在 zlprime。未经许可,禁止转载。
为WordPress添加评论邮件通知功能
上一篇
WordPress中使用代码禁用古腾堡编辑器
下一篇
评论 (0)
再想想
聚合文章
Tekla快捷键
14小时前
一个决定
4月前
三河古镇之行
4月前
摘草莓
9月前
近期文章
  • Tekla快捷键 2021年1月24日
  • 一个决定 2020年9月29日
标签
Excel Tekla wordpress 生活 航拍 视频 读书 随笔
近期评论
  • Stone发表在《留言板》
  • 2broear发表在《留言板》
  • Stone发表在《留言板》
相关文章
无插件配置WordPress的SMTP发信功能
WordPress中使用代码禁用古腾堡编辑器
为WordPress添加评论邮件通知功能
为WordPress经典编辑器添加字体大小、格式等选项
简介

海边微风起,等风也等你

留言板
留言板
小伙伴们
2Broear Libra の 向往 云帆沧海
Copyright © 2017-2021 zlprime. 皖ICP备17019582号
  • 首页
  • 朝花夕拾
    • 摄影
    • 读书
    • 生活
    • 随笔
  • 技能分享
    • Tekla
    • WordPress
  • 留言板
  • 友情链接
热门搜索
  • wordpress
  • 随笔
  • 游记
Stone
大家好,我是Stone,现居合肥。
17 文章
20 评论
33 喜欢
  • 0
  • 0
  • Top