php - 验证时 Recaptcha 错误代码“连接失败”
问题描述
在实施 recaptcha v2 时,我'connection-failed'
在尝试验证 recaptcha 输入时收到错误代码。
我遵循了这个(https://www.freakyjolly.com/how-to-add-google-recaptcha-in-php-form/)教程,因为我发现其他人没有运气
require('src/autoload.php');
$siteKey = 'my key';
$secret = 'my key';
$recaptcha = new \ReCaptcha\ReCaptcha($secret);
$gRecaptchaResponse = $_POST['g-recaptcha-response'];
$remoteIp = $_SERVER['REMOTE_ADDR'];
$recaptchaErrors = '';
$resp = $recaptcha->verify($gRecaptchaResponse, $remoteIp);
if ($resp->isSuccess()) {
$error[] = "worked";
} else {
$recaptchaErrors = $resp->getErrorCodes();
foreach($recaptchaErrors as $err)
{
$error[] = $err;
}
}
我没有太多运气在任何地方找到有关此错误的任何详细信息,并且官方recaptcha页面上也没有记录。出于测试目的,我已经编辑了上面的代码段,但它会发送一封电子邮件。
解决方案
如果allow_url_fopen
在off
您的 中php.ini
,则连接将失败,因为默认Recaptcha
使用file_get_contents
访问 API。我不会启用此标志,因为它可能会带来安全风险。
如果您安装了 phpcurl
模块,我的建议是Recaptcha
与curl
连接一起使用:
$recaptcha = new \ReCaptcha\ReCaptcha($secret, new \ReCaptcha\RequestMethod\CurlPost());
推荐阅读
- twilio - Twillio 验证 - 如何在每次通话时发送唯一代码?
- swift - 如果用户取消 WEBDAV 存储库上的文件上传,文件将损坏
- google-apps-script - 将 Arrayformula 转换为 INDEX&MATCH 以获取 googleform 响应
- cocoapods - 如何为私有 pod 指定用户名
- java - 将搜索功能从字符串更改为整数
- python - 如何对两个以上的类别进行空间情绪分析
- node.js - 按电话号码跟踪链接点击次数
- image - 如何在反应本机应用程序中通过相机(反应本机图像选择器)捕获和渲染多个图像
- javascript - 如何在 Spring MVC 的 JSP 登录页面中实现记住我?
- javascript - @keyup.delete输入直到为空时如何触发功能?VueJS