我再次想出了新的谷歌验证码问题。 我有一个包含以下代码的视图文件:
<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"
]
}
请建议,如何克服这一点。
谢谢。
答案 0 :(得分:0)
您可能收到错误消息,缺少输入 - 响应,因为您没有正确传递参数“response”。
您可以使用您用于调用验证码API的代码更新您的问题吗?