2种适合WordPress注册验证码插件/非插件实现方法

老蒋在"分享一个WordPress邀请码注册插件 - Easy Invitation Codes"文章中有提到一旦开放注册账户功能,势必我们就应该考虑是否有垃圾注册信息的问题,这个与我们文章评论验证过滤还是有一定的关系的。所以,顺带的就引申出关于注册账户的时候,验证码插件或者实现方法问题。
关于注册账户的时候,我们依旧可以实现多种验证过滤模式,比如我们常见的有滑动移动滚动条模式、选择物件种类模式、拖动拼图模式,以及完成验证问题的模式。在这篇文章中,老蒋先分享一个使用插件,一种不适用插件自定义问题回答模式。
第一、SI CAPTCHA Anti-Spam插件
SI CAPTCHA Anti-Spam插件功能还是蛮强大的,支持文章评论、注册验证多种模式。安装之后,我们需要设置才可以生效。
2种适合WordPress注册验证码插件/非插件实现方法
看到了不?支持的地方很多吧,包括登录的时候都可以激活验证模式。
2种适合WordPress注册验证码插件/非插件实现方法
第二、自定义验证问题验证方式

function rand_reg_question(){
$register_number=rand(0,1); // 设置随机数的返回范围<br> $_SESSION['register_number']=$register_number;
}
add_action('login_head','rand_reg_question'); global $register_questions;<br> global $register_answers;
// 添加问题数组
$register_questions=array('中国的首都在哪里?','Google是哪个国家的公司?');<br> // 添加答案数组(与上面的问题对应)<br> $register_answers=array('北京','美国'); add_action( 'register_form', 'add_security_question' );
function add_security_question() {
global $register_questions;<br> $register_number=$_SESSION['register_number'];<br> ?><br> <p><br> <label><?php echo $register_questions[$register_number];?>

<input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" />
</label>
</p>
<?php } add_action( 'register_post', 'add_security_question_validate', 10, 3 );
function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {<br> global $register_answers;
$register_number=$_SESSION['register_number'];
if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。' );<br> } elseif ( strtolower( $_POST[ 'user_proof' ] ) != $register_answers[$register_number] ) {
return $errors->add( 'prooffail', '错误: 您的回答不正确。' );
}
}

这个方法来自WP大学( https://www.wpdaxue.com/add-a-security-question-to-the-register-screen.html),默认是只有2个问题,我们可以根据数组模式,添加或者修改多个问题。
2种适合WordPress注册验证码插件/非插件实现方法
这里我们可以看到在刷新注册页面可以看到问题的随机出现,我们可以自行设置多个问题随机。

赞 (0)
您的大名:
万水千山总是情,给个打赏行不行。 打赏

评论区

发表评论

21+45=?

暂无评论,要不来一发?

回到顶部