WordPress 注册表单添加验证问题(支持多个随机问题)

 缙哥哥
评分 5.00, 满分 5 分
1
 109 ℃ 0条点评
小号字体中号字体大号字体
缙哥哥有段时间开放注册,一堆“外国机器友人”(可能是wordpress国外用的多的原因吧)来注册,在加上缙哥哥的博客有注册提示和正确登陆提示,烦不胜烦。通常...

缙哥哥有段时间开放注册,一堆“外国机器友人”(可能是wordpress国外用的多的原因吧)来注册,在加上缙哥哥的博客有注册提示和正确登陆提示,烦不胜烦。

通常网站的注册表单都使用验证码来进行验证,但是有没有考虑过使用验证问题来验证呢?使用问题验证的好处在于:

  1. 防止机器人注册(和验证码一样);
  2. 只有知道答案的人才能注册(可用于限制用户注册)。

下面将添加一个验证问题缙哥哥的博客域名是什么?答案缙哥哥也写上:dujin.org并加以括号提示,目的就是防止随便注册。

dujin20160608114447

将下面的代码添加到主题的 functions.php 即可:

add_action( 'register_form', 'add_security_question' );
function add_security_question() { ?>
<label>< ?php _e('缙哥哥的博客域名是什么?答案[dujin.org]') ?>
<input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" /></label>
< ?php }
add_action( 'register_post', 'add_security_question_validate', 10, 3 );
function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {
// 如果没有回答
if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题(输入dujin.org即可)。'  );
// 如果答案不正确
} elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'dujin.org' ) {
return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确(输入dujin.org即可)。'  );
}
}
当然了,自己别忘了修改问题,如果用这个问题,那么缙哥哥更高兴啦!哈哈哈

打赏
本文标签:
分享到
分手炮的正确打开方式 get√
WordPress 防止机器人扫描邮箱

已有0条评论,欢迎点评!

您必须 [ 登录 ] 才能发表留言!

国际惯例, 沙发拿下 . . .


注册帐号  | 忘记密码