discuz添加recaptcha验证码防止注册机

discuz论坛经常有注册机在论坛批量发帖
recaptcha可以有效防止注册机自动注册,减少垃圾用户

discuz注册页面部署recaptcha只需要修改两个文件

1 修改模板文件 template\default\member\register.htm
在页面最后一个 div class="rfm" 上面添加recaptcha客户端代码

<script src='https://www.recaptcha.net/recaptcha/api.js'  defer></script>
         <div class="rfm">
                 <table>
                         <tr>
                                 <th><span class="rq">*</span></th>
                                 <td>
 <div class="g-recaptcha" data-sitekey="XXXjCHUUAAAAAMzCuvXXXGoekD3P0nGwTQ3MVXXX"></div>
                                 </td>
                                 <td class="tipcol"></td>
                         </tr>
                 </table>
         </div>

2 修改注册页面调用代码 source\module\member\member_register.php
直接在 $ctl_obj = new register_ctl(); 上面添加



$secret = 'XXXjCHUUAAAAADPK1p_3R87YEGBkxmYKy4D8sXXX'  ;
$pass = $_G['gp_password'] ? $_G['gp_password']:$_G['gp_'.$_G['setting']['reginput']['password']];

if( $pass && !empty($_POST['g-recaptcha-response']))
{

$verifyResponse = file_get_contents('https://www.recaptcha.net/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
        $responseData = json_decode($verifyResponse);
    if (!$responseData->success) {
 
  showmessage('验证码输入不正确!'  );
}    
        
} elseif($pass && !$_POST["recaptcha_response_field"])  {

showmessage('请输入验证码!');    

}

此处评论已关闭