You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Recaptcha v2无响应返回Verification failed错误 代码问题排查求助

Recaptcha v2 验证失败问题修复方案
  • 验证码资源未加载
    HTML代码中缺失reCAPTCHA v2的JS依赖,导致验证码组件无法正常渲染,用户无法完成校验,g-recaptcha-response参数为空直接触发验证失败。需在页面</head>标签前添加如下代码:
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
  • 密钥配置不匹配
    确认以下两点配置正确:

    1. 代码中填写的siteKey和secretKey为同一份reCAPTCHA v2申请的密钥,不要和v3版本密钥混用
    2. reCAPTCHA后台绑定的域名与当前代码运行的域名完全一致,本地测试需要将localhost、127.0.0.1加入后台域名白名单
  • 验证接口调用方式错误
    reCAPTCHA官方要求使用POST请求调用校验接口,且file_get_contents易受服务器配置限制无法发起外站请求,导致验证流程中断。将原有校验部分代码替换为curl实现的POST请求:

// 替换原有file_get_contents调用逻辑
$secretKey    = '你的真实secretKey';
$responseKey = $_POST['g-recaptcha-response'] ?? '';
$userIP = $_SERVER['REMOTE_ADDR'];

$postData = [
    'secret' => $secretKey,
    'response' => $responseKey,
    'remoteip' => $userIP
];

$ch = curl_init('https://www.google.com/recaptcha/api/siteverify');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response);
  • 代码拼写错误
    邮件发送部分变量名拼写错误,定义的邮件头变量为$headers,调用mail()函数时传入的参数为$header,少了末尾的s,会导致邮件发送失败。同时需要补充HTML邮件格式声明,避免邮件内容显示为源码:
// 修改邮件头配置
$headers = "From: $email\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

// 修改mail函数调用参数
if(mail($to, $subject,$msgBody,$headers)){
  • 错误屏蔽导致无法定位问题
    代码开头error_reporting(0)屏蔽了所有运行错误,调试阶段建议注释该行,开启错误提示可快速定位是服务器网络问题、配置问题还是代码逻辑问题。

内容的提问来源于stack exchange,提问作者jack lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:27:03