【问题标题】:Still getting spam emails after installing reCaptcha v2 Checkbox安装 reCaptcha v2 Checkbox 后仍然收到垃圾邮件
【发布时间】:2021-05-29 10:01:35
【问题描述】:

我在表单中使用 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 */ }

现在如何阻止垃圾邮件?

【问题讨论】:

  • “收到垃圾邮件”是什么意思?你的意思是你收到的垃圾邮件是垃圾邮件吗? recapcha 仅检查您的网站是否被人类使用,然后您的网站应该根据您的描述发送电子邮件。 (外发邮件)
  • 没有进入垃圾邮件文件夹....收到垃圾邮件

标签: php recaptcha spam


【解决方案1】:

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

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

【讨论】:

  • 响应有“成功”如果验证否则错误消息。
  • @YogeshSaroya 那不正确。看看他们的docs。它说"success": true|false,
猜你喜欢
  • 2021-01-20
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 2016-11-16
相关资源
最近更新 更多