缙哥哥的博客
与你分享我的点点滴滴生活

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即可)。'  );
	}
}
当然了,自己别忘了修改问题,如果用这个问题,那么缙哥哥更高兴啦!哈哈哈

转载请注明来源及链接:缙哥哥 » WordPress 注册表单添加验证问题(支持多个随机问题)
分享到: 更多 (0)