如何为WordPress的注册登录页面添加十以内运算验证码?

 boke112联盟   2020-10-16 16:39:01 更新  WordPress

登录页面添加验证码使用说明:

登录 WordPress 后台管理,选择【外观】–【编辑】–【模板函数 (functions.php)】直接添加下面全部代码:【?>前面】即可。

  1. /后台登陆数学验证码
  2. function myplugin_add_login_fields() {
  3. //获取两个随机数, 范围 0~9
  4. $num1=rand(0,9);
  5. $num2=rand(0,9);
  6. //最终网页中的具体内容
  7. echo "<p><label for='math' class='small'>验证码</label><br /> $num1 + $num2 = ?<input type='text' name='sum' class='input' value='' size='25' tabindex='4'>"
  8. ."<input type='hidden' name='num1' value='$num1'>"
  9. ."<input type='hidden' name='num2' value='$num2'></p>";
  10. }
  11. add_action('login_form','myplugin_add_login_fields');
  12. function login_val() {
  13. $sum=$_POST['sum'];//用户提交的计算结果
  14. switch($sum){
  15. //得到正确的计算结果则直接跳出
  16. case $_POST['num1']+$_POST['num2']:break;
  17. //未填写结果时的错误讯息,可自定义修改
  18. case null:wp_die('错误: 请输入验证码.');break;
  19. //计算错误时的错误讯息,可自定义修改
  20. default:wp_die('错误: 验证码错误,请重试.');
  21. }
  22. }
  23. add_action('login_form_login','login_val');

注册页面添加验证码使用说明:

登录 WordPress 后台管理,选择【外观】–【编辑】–【模板函数 (functions.php)】直接添加下面全部代码:【?>前面】即可。

  1. //WordPress 新用户注册随机数学验证码
  2. function add_security_question_fields() {
  3. //获取两个随机数, 范围 0~9
  4. $num1=rand(0,9);
  5. $num2=rand(0,9);
  6. //最终网页中的具体内容
  7. echo "<p><label for='math' class='small'>验证码:$num1 + $num2 = ? </label><input type='text' name='sum' class='input' value='' size='25'>"
  8. ."<input type='hidden' name='num1' value='$num1'>"
  9. ."<input type='hidden' name='num2' value='$num2'></p>";}
  10. add_action('register_form','add_security_question_fields');
  11. add_action( 'register_post', 'add_security_question_validate', 10, 3 );
  12. function add_security_question_validate( $sanitized_user_login$user_email$errors) {
  13. $sum=$_POST['sum'];//用户提交的计算结果
  14. switch($sum){
  15. //得到正确的计算结果则直接跳出
  16. case $_POST['num1']+$_POST['num2']:break;
  17. //未填写结果时的错误讯息
  18. case null:wp_die('错误:请输入验证码!');break;
  19. //计算错误时的错误讯息
  20. default:wp_die('错误:验证码错误,请重试!');}}
  21. add_action( 'add_security_question','register_form' );

答案来自:小文's blog - https://www.qcgzxw.cn/?p=2205

您可能感兴趣的文章

文章标签: ,  更多热门标签>>
版权声明:本文为原创文章,版权归 boke112联盟 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请与老古(QQ:2226524923)联系,老古将及时更正、删除,谢谢。
  1. 腾蛙网
    腾蛙网

    主题更新,就又要添加

  2. 橘子书
    橘子书

    好像很多人已经在加这个功能了,不过一般就是防机器而已。

    • 懿古今
      懿古今2017-08-29 09:22

      @橘子书其实主要还是防机器,一般人应该不会无聊到一个个去尝试爆破吧?