'connection-failed'实现 recaptcha v2 时,我在尝试验证 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;
}
}
Run Code Online (Sandbox Code Playgroud)
我在任何地方都没有找到有关此错误的任何详细信息,并且官方 recapcha 页面上没有记录该错误。我出于测试目的编辑了上面的代码片段,但它将发送一封电子邮件。
如果allow_url_fopen在off您的 中php.ini,连接将失败,因为默认Recaptcha用于file_get_contents访问 API。我不会启用此标志,因为它可能会带来安全风险。
我的建议是,如果您安装了 phpcurl模块,则使用Recaptcha连接curl:
$recaptcha = new \ReCaptcha\ReCaptcha($secret, new \ReCaptcha\RequestMethod\CurlPost());
Run Code Online (Sandbox Code Playgroud)