php - 安装 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 */ }
现在下一步要做什么来阻止垃圾邮件?
解决方案
isset
表示该属性存在和不存在null
。您应该将您的条件更改为:
isset($arr['success']) && $arr['success']
推荐阅读
- java - Java ClassFile 附加字节?
- c# - 获取 OAuth 令牌以读取 Outlook 电子邮件时使用的“范围”值
- converters - 在 CKEditor5 中,在向下转换的转换器中,如何在另一个视图元素的开头插入一个视图元素?
- c# - 不能覆盖基类的属性
- c# - 是否可以从sql server中过滤数据
- visual-studio - 在远程 Linux 机器上使用 Visual Studio 2019 的管理权限启动 cmake 构建的应用程序
- c# - 如何在 ASP.NET MVC Core 2.2 中创建下载文件的链接
- java - 如何实现同时包含url和内容的二维码
- android - 如何设置和检索 NavGraph.xml 中设置的参数?
- android - 古吉拉特语的文字转语音