reCaptcha V2没有在php中返回响应

时间:2017-07-13 13:15:15

标签: php recaptcha

我已经在我的html表单上实现了重新捕获代码,没有任何问题。

我在头文件中有java脚本引用。我得到了g-recaptcha-response的结果,但是当我尝试验证它时,我没有得到任何结果,我什么都没回来,没有错误,什么都没有。我检查了我的网站,密钥是正确的。我还将$ resp置于$ status状态,以查看经过验证的回复来自Google,并且它始终显示为空。我无法弄清楚我做错了什么。

<div class="g-recaptcha" data-sitekey="MY.SITE.KEY"></div>
                      <br/>

                    <button  name="submit" type="submit">Submit Registration Form</button>
    if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response']))
    //your site secret key
    $secret = 'MY.SECRET.KEY';
    //get verify response data
    $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
    $resp = json_decode($verifyResponse);

    if ($resp->success==false) 
    {
        $proceed = false;
        $status .= "You entered the ReCaptcha field incorrectly!".$resp."<br />";
    }

1 个答案:

答案 0 :(得分:0)

似乎您缺少大括号。

if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) {        
$secret = 'MY.SECRET.KEY';
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$resp = json_decode($verifyResponse);

if ($resp->success== true) 
{
  //Do something
}}