欢迎光临
我们一直在努力

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

蜗牛在\\”分享一个WordPress邀请码注册插件 – Easy Invitation Codes\\”文章中有提到一旦开放注册账户功能,势必我们就应该考虑是否有垃圾注册信息的问题,这个与我们文章评论验证过滤还是有一定的关系的。所以,顺带的就引申出关于注册账户的时候,验证码插件或者实现方法问题。

关于注册账户的时候,我们依旧可以实现多种验证过滤模式,比如我们常见的有滑动移动滚动条模式、选择物件种类模式、拖动拼图模式,以及完成验证问题的模式。在这篇文章中,蜗牛先分享一个使用插件,一种不适用插件自定义问题回答模式。

第一、SI CAPTCHA Anti-Spam插件

SI CAPTCHA Anti-Spam插件功能还是蛮强大的,支持文章评论、注册验证多种模式。安装之后,我们需要设置才可以生效。

看到了不?支持的地方很多吧,包括登录的时候都可以激活验证模式。

第二、自定义验证问题验证方式

function rand_reg_question(){
$register_number=rand(0,1); // 设置随机数的返回范围
$_SESSION[\\’register_number\\’]=$register_number;
}
add_action(\\’login_head\\’,\\’rand_reg_question\\’);

global $register_questions;
global $register_answers;
// 添加问题数组
$register_questions=array(\\’中国的首都在哪里?\\’,\\’Google是哪个国家的公司?\\’);
// 添加答案数组(与上面的问题对应)
$register_answers=array(\\’北京\\’,\\’美国\\’);

add_action( \\’register_form\\’, \\’add_security_question\\’ );
function add_security_question() {
global $register_questions;
$register_number=$_SESSION[\\’register_number\\’];
?>
<p>
<label><?php echo $register_questions[$register_number];?><br />
<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) {
global $register_answers;
$register_number=$_SESSION[\\’register_number\\’];
if (!isset($_POST[ \\’user_proof\\’ ]) || empty($_POST[ \\’user_proof\\’ ])) {
return $errors->add( \\’proofempty\\’, \\\'<strong>错误</strong>: 您还没有回答问题。\\’ );
} elseif ( strtolower( $_POST[ \\’user_proof\\’ ] ) != $register_answers[$register_number] ) {
return $errors->add( \\’prooffail\\’, \\\'<strong>错误</strong>: 您的回答不正确。\\’ );
}
}

这个方法来自WP大学(https://www.wpdaxue.com/add-a-security-question-to-the-register-screen.html),默认是只有2个问题,我们可以根据数组模式,添加或者修改多个问题。

这里我们可以看到在刷新注册页面可以看到问题的随机出现,我们可以自行设置多个问题随机。

赞(0)
未经允许不得转载:沃园 » 2种适合WordPress注册验证码插件/非插件实现方法

评论 抢沙发

评论前必须登录!

立即登录   注册