PHP - 验证recaptcha v2响应

时间:2015-08-12 20:47:45

标签: php forms validation recaptcha

#form.php

if(isset($_POST['g-recaptcha-response'])){
    $captcha=$_POST['g-recaptcha-response'];
    $captcha=$_GET["g-recaptcha-response"];
    $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=__1234__&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);

    echo $response;

返回:

  

注意:未定义的索引:第114行的/var/www/clients/qmax/app/controllers/job_application_controller.php中的g-recaptcha-response {“success”:false,“error-codes”:[“missing-输入 - 响应“]}

echo $response->success;

返回:

  

注意:尝试在第119行的/var/www/clients/qmax/app/controllers/job_application_controller.php中获取非对象的属性

我只需要获得“成功”对象,然后我可以测试它是真还是假并且我完成了。

1 个答案:

答案 0 :(得分:6)

删除此行:

  

$验证码= $ _ GET [" G-验证码 - 响应"];

然后你需要像Google那样解码json:

  

$ g_response = json_decode($ response);

然后用If / Else检查:

  

if($ g_response-> success === true){echo" success!&#34 ;; }