首页 > 解决方案 > 安装 reCaptcha v2 Checkbox 后仍然收到垃圾邮件

问题描述

我在表单中使用 reCaptcha v2(复选框),但我仍然收到垃圾邮件。

我正在使用的代码

在表单页面

    <script type="text/javascript">
  var onloadCallback = function() {
    grecaptcha.render('g-recaptcha', {
      'sitekey' : 'KEY'
    });
  };
</script>

以显示重述的形式

<div class="form-group"><div id="g-recaptcha"></div></div>

和脚本文件

<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>

这是php文件中的服务器端代码

if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])){
    $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={KEY}&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']);
    $arr = json_decode($response,true);
    if(isset($arr['success'])){
    
/* here i am sending email using SMTP */

}else { /* error */ }
}else { /* error */ }

现在下一步要做什么来阻止垃圾邮件?

标签: phprecaptchaspam

解决方案


isset表示该属性存在和不存在null。您应该将您的条件更改为:

isset($arr['success']) && $arr['success']

推荐阅读