簡體   English   中英

Google Recaptcha和PHP

[英]Google recaptcha and PHP

我正在嘗試使用Google Recaptcha 1.0版對表單進行問題排查-提交表單時,g-recaptcha-response已填寫,這表示Google很高興這是真實的人,但是ReCaptchaResponse為空,這意味着表單無法提交,因為我無法提交確保這是一個真實的人。

提交表單后,這是$ _POST中的值:

[g-recaptcha-response] => 03AHJ_Vuvki7OVSl6bZug1NN5WPOK4HUiLmhAFMMl1RmEiwWzn-tIJ8iryAe01Z-RjzaAtfBKP2ITFc2SnrTV3v7CG7YosOspqXuMSuLDgHCqWG7CEdSCxlSUaaB6joNtOQYPTi0vP4n6sfupG0GfnjMkxJPnEfEnNvsCimsvtIkUbHfY18bYzXTarXCqjb_R_EHcnIl0zm5HhpIeJUFaJYqgivz1gRqkR_BZhlKzvCkVQkRw9Zl-RVRgThUFqI_IFjRnL5ZE5eV1VwrEZFx9j8AOq1gkYw6Cjk8wYSRp9Ax816ifnyYAPtV_NIM6qBpM3NfTejlZ0FT0fu7Kd5mqOFllqSaRVOpSdT-W2HrL4EkNBIeA-YrDwPu9-8-lX3WtZY6kvdm_9Cb_8I1tjKoAmu70mXC0yl5i9Rf0NluS_hAGwCIZFDW9V5PtiiYeD9HpiW3h4nZpzBKAC3FaRuQZNKfTEMPO0TelIlQ [submit] => )

這是ReCaptchaResponse的內容:

ReCaptchaResponse Object ( [success] => [errorCodes] => )

這是我用來驗證響應的代碼-它總是在!$ response-> success上失敗,這是有道理的,因為成功為空,但是為什么在填充g-recaptcha-response時為空?

    $secret= "MY_SECRET";

    require_once('recaptchalib.php');

    $reCaptcha = new ReCaptcha($secret);

    if ($_POST["g-recaptcha-response"]) {
        $response = $reCaptcha->verifyResponse(
            $_SERVER["REMOTE_ADDR"],
            $_POST["g-recaptcha-response"]
        );
        print_r($response);
        print $response->success;
        print $response->error-codes;

        if ($response == null) {
            $error_message='<p>Please validate your captcha response 1</p>';
            $error=1;
        } elseif (!$response->success){
            $error_message='<p>Please validate your captcha response 2</p>';
            $error=1;
        }
    } else {
        $error_message='<p>Please validate your captcha response 3</p>';
        $error=1;
    }

對於這樣的響應,請使用var_dump()而不是print_r() ,因為后者將falseNULL打印為空白。

print_r($response);
-> ReCaptchaResponse Object
(
    [success] =>
    [errorCodes] =>
)

var_dump($response);
-> object(ReCaptchaResponse)#1 (2) {
  ["success"]=>
  bool(false)
  ["errorCodes"]=>
  NULL
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM