【问题标题】:Codeigniter Google Recaptcha Form Validation not working in serverCodeigniter Google Recaptcha 表单验证在服务器中不起作用
【发布时间】:2019-10-25 10:03:21
【问题描述】:

我在其中一个页面中使用了 Google Recaptcha 表单验证。该代码在本地计算机上正常工作。我在服务器中上传了相同的代码,它在服务器中给出了以下错误。 我检查了 php.ini 文件的 allow_url_fopen 值,该值为 true。我的工作代码是:

$secret ="sercret key";
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha&remoteip$ip");

$arr = json_decode($rsp , true);

【问题讨论】:

  • 在后端和前端仔细检查您的密钥和令牌。
  • 我已经检查了前端和后端的秘密令牌密钥,两者都是正确的,在服务器端也允许_url_fopen=on。

标签: codeigniter captcha


【解决方案1】:

我想我迟到了。不过没关系,我可能可以帮助那些需要我帮助的人。

有两种方法可以解决这个问题。

方法一: (即使你可以从 YouTube 上找到它,我也不真的推荐这个)

$secret ="sercret key";
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify? 
secret=".$secret."&response=".$captcha."&remoteip=".$ip);
$arr = json_decode($rsp , true);

方法二: 一种更好的方法是使用 cURL。这是代码

$secret ="sercret key";
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST['g-recaptcha-response'];
$rsp = "https://www.google.com/recaptcha/api/siteverify? 
secret=".$secret."&response=".$captcha."&remoteip=".$ip;


        $ch = curl_init();   
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
        curl_setopt($ch, CURLOPT_URL, $rsp);   
        $apiresponse = curl_exec($ch);
        $apiresponse = json_decode($apiresponse,true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多