!
也想出现在这里? 联系我们
广告位

WordPress新用户注册添加验证问题

昨天发现了一件很蛋疼的事情呀,比如你在百度搜索 WordPress用户注册添加验证问题,出来的前三个代码都是有问题的,还有一个的代码居然只有前面几句,本文要修正的功能是当站点启用注册后,给注册表单添加一个验证问答,避免一些垃圾用户,也可以利用这个来实现邀请注册功能,好处是不用安装什么邀请码插件,只需设置成统一的验证答案,然后把你设置的答案发给那些注册的人就行了。

代码如下:

  1. add_action( 'register_form', 'add_security_question' );
  2. function add_security_question() { ?>
  3. <p>
  4. <label><?php _e('请输入本站域名的中间部分:22vd') ?><br />
  5. <input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" /></label>
  6. </p>
  7. <?php }
  8. add_action( 'register_post', 'add_security_question_validate', 10, 3 );
  9. function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {
  10. // 如果没有回答
  11. if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
  12. return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。' );
  13. // 如果答案不正确
  14. } elseif ( strtolower( $_POST[ 'user_proof' ] ) != 'dedewp' ) {
  15. return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确。' );
  16. }
  17. }

加入到主题的 functions.php 文件就可以正常使用了。
如果你需要随机多个问题,那么需要用到如下代码:

  1. session_start();
  2. function rand_reg_question(){
  3. $register_number=rand(0,2); // 设置随机数的返回范围
  4. $_SESSION['register_number']=$register_number;
  5. }
  6. add_action('login_head','rand_reg_question');
  7. global $register_questions;
  8. global $register_answers;
  9. // 添加问题数组
  10. $register_questions=array('中国的首都在哪里?','Google是哪个国家的公司?','创客云是用什么建站程序搭建的?');
  11. // 添加答案数组(与上面的问题对应)
  12. $register_answers=array('北京','美国','wordpress');
  13. add_action( 'register_form', 'add_security_question' );
  14. function add_security_question() {
  15. global $register_questions;
  16. $register_number=$_SESSION['register_number'];
  17. ?>
  18. <p>
  19. <label><?php echo $register_questions[$register_number];?><br />
  20. <input type="text" name="user_proof" id="user_proof" class="input" size="25" tabindex="20" />
  21. </label>
  22. </p>
  23. <?php }
  24. add_action( 'register_post', 'add_security_question_validate', 10, 3 );
  25. function add_security_question_validate( $sanitized_user_login, $user_email, $errors) {
  26. global $register_answers;
  27. $register_number=$_SESSION['register_number'];
  28. if (!isset($_POST[ 'user_proof' ]) || empty($_POST[ 'user_proof' ])) {
  29. return $errors->add( 'proofempty', '<strong>错误</strong>: 您还没有回答问题。' );
  30. } elseif ( strtolower( $_POST[ 'user_proof' ] ) != $register_answers[$register_number] ) {
  31. return $errors->add( 'prooffail', '<strong>错误</strong>: 您的回答不正确。' );
  32. }
  33. }

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

为iFrame添加动态载入提示优化用户体验

2024-3-1 9:36:01

WordPress教程

删除后台标题中的WordPress后缀

2024-3-1 9:36:05

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索