代码点火器 PHP 中的 MISSING INPUT-RESPONSE RECAPTCHA 错误



我已经在codeigniter中为我的表单创建了recaptcha,recaptcha函数在我的控制器中如下所示:

public function validate_captcha() {
$recaptcha = trim($this->input->post('g-recaptcha-response'));
$userIp= $this->input->ip_address();
$secret='6LcuEP4UAAAAAGa1zwXxGTV0r1fNHMZqnTGeN-c_';

$secretdata = array(
'secret' => "$secret",
'response' => "$recaptcha",
'remoteip' =>"$userIp"
);
$verify = curl_init();
curl_setopt($verify, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify");
curl_setopt($verify, CURLOPT_POST, true);
curl_setopt($verify, CURLOPT_POSTFIELDS, http_build_query($secretdata));
curl_setopt($verify, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($verify, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($verify);
$status= json_decode($response, true);

if(empty($status['success'])){
return FALSE;
}else{
return TRUE;
}
}

现在的问题是这给了我以下错误:

{"成功":

假,"错误代码":["缺少输入响应"]}

任何人都可以告诉我我在代码中做错了什么,提前谢谢

我认为方法应该是GET而不是POST。

请使用以下代码验证谷歌验证码。

<?php 
public function validate_captcha() {
$recaptcha = trim($this->input->post('g-recaptcha-response'));
$userIp= $this->input->ip_address();
$secret='6LcuEP4UAAAAAGa1zwXxGTV0r1fNHMZqnTGeN-c_';
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$recaptcha.'&remoteip='.$userIp);
$responseData = json_decode($verifyResponse);
if(!$responseData->success){
echo "failed";
}else{
echo "success";
}
}

相关内容

最新更新