为了账号安全,请及时绑定邮箱和手机立即绑定

codeigniter php 中的 MISSING-INPUT-RESPONSE

codeigniter php 中的 MISSING-INPUT-RESPONSE

PHP
慕桂英3389331 2023-04-21 17:14:21
我在 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;          }      }现在的问题是这给了我以下错误:{“SUCCESS”:FALSE,“ERROR-CODES”:[“MISSING-INPUT-RESPONSE”]}任何人都可以告诉我我在代码中做错了什么,在此先感谢
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

我认为方法应该是 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";

    }


}


查看完整回答
反对 回复 2023-04-21
  • 1 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信