^ 回到顶部
  • 人生没有定律,每个人都有自己的节奏
  • 本站wordpress建站教程均通过实践后发布,希望可以帮到你
  • 希望你的坚持,都是因为热爱,而不是因为不甘心
  • 5年wordpress建站经验,5星服务品质
  • 那些不愿意让你吃亏的人,才是真正值得你深交的人,也是值得你付出时间的人

WordPress新用户注册添加验证问题(修正版)

阿里云服务器9.9

昨天发现了一件很蛋疼的事情呀,比如你在百度搜索 WordPress 新用户注册添加验证问题,出来的前三个代码都是有问题的,还有一个的代码居然只有前面几句,WP 界的人都是这么浮躁的么?

WordPress 新用户注册添加验证问题(修正版)

本文要修正的功能是当站点启用注册后,给注册表单添加一个验证问答,避免一些垃圾用户,也可以利用这个来实现邀请注册功能,好处是不用安装什么邀请码插件,只需设置成统一的验证答案,然后把你设置的答案发给那些注册的人就行了。

WordPress 新用户注册添加验证问题(修正版)

修正后的代码为:

add_action( 'register_form', 'add_security_question' );
function add_security_question() { >
    <p>
    <label><?php _e('请输入本站域名的中间部分:dedewp') ><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) {
    // 如果没有回答
    if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
        return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。'  );
    // 如果答案不正确
    } elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'dedewp' ) {
        return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确。'  );
    }
}

加入到主题的 functions.php 文件就可以正常使用了。

如果你需要随机多个问题,那么需要用到如下代码:

session_start();
function rand_reg_question(){
    $register_number=rand(0,2); // 设置随机数的返回范围
    $_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('北京','美国','wordpress');
    
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>: 您的回答不正确。' );
    }
}

 

历史上的今天:
让小雨知道,这篇文章帮到了你

展开阅读全文

扫码关注微信公众号zs40086(微搜片)随时随地微信看片,抢先福利电影等你来
小雨导购

如有疑问,请前往问答中心反馈!

反馈
  1. 森七博客
    可以

登录

忘记密码 ?

切换登录

注册