"成功错误"在Google Captcha实施中

时间:2017-08-03 09:56:19

标签: php recaptcha

我再次想出了新的谷歌验证码问题。 我有一个包含以下代码的视图文件:

     <p>
        <div class="g-recaptcha" data-sitekey="MY_SITE_KEY"></div>
     </p>

上面的代码显然在表单元素下。 在那之后, 在我的控制器中,我写的如下,

    if ($this->form_validation->run() == TRUE) {

        $recaptchaResponse = trim($this->input->post('g-recaptcha-response'));
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = array(
            'secret' => 'MY_SECRET_KEY',
            'response' => $recaptchaResponse
        );
        $options = array(
            'http' => array (
                'method' => 'POST',
                'content' => http_build_query($data)
            )
        );
        $context  = stream_context_create($options);
        $verify = file_get_contents($url, false, $context);
        $captcha_success=json_decode($verify);
        #echo "<pre>"; print_r($captcha_success);die;
        if ($captcha_success->success==false) {
            echo "<p>You are a bot! Go away!</p>";
        } else if ($captcha_success->success==true) {
            echo "<p>You are not not a bot!</p>";
        } 
        die;
    }

但它仍然不适合我。

实际上,我已经使用Google帐户注册了我的localhost网址,并且我为本地和现场提供了不同的密钥和网站密钥。但是当我尝试使用验证码时,live和local都给出了与下一个相同的json输出。

 {
   "success": false,
   "error-codes": [
   "missing-input-response"
   ]
 }

请建议,如何克服这一点。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可能收到错误消息,缺少输入 - 响应,因为您没有正确传递参数“response”。

您可以使用您用于调用验证码API的代码更新您的问题吗?