如何在 PHP 的伺服器端驗證 Google reCAPTCHA v3?

Linda Hamilton
發布: 2024-10-31 13:18:02
原創
943 人瀏覽過

How to Verify Google reCAPTCHA v3 on the Server Side in PHP?

如何在PHP 中的伺服器端驗證Google reCAPTCHA v3

問題:您已經實現了Google reCAPTCHA v3,並在前端,但您在伺服器端驗證它時遇到困難。即使驗證碼無效,表單也會提交。

解決方案:

要在伺服器端有效處理 Google reCAPTCHA v3 驗證,使用 POST 請求至關重要。這是一個解決方案:

<code class="php">function isValid()
{
    try 
    {
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = [
            'secret'   => '[YOUR SECRET KEY]',
            'response' => $_POST['g-recaptcha-response'],
            'remoteip' => $_SERVER['REMOTE_ADDR']
        ];

        $options = [
            'http' => [
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => http_build_query($data)
            ]
        ];

        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        return json_decode($result)->success;
    }
    catch (Exception $e) 
    {
        return null;
    }
}</code>
登入後複製

說明:

  • isValid() 函數旨在使用 POST 請求驗證 reCAPTCHA v3。
  • 它將金鑰、驗證碼回應和使用者的 IP 位址傳送到 Google 的 API。
  • 函數解析 API 的回應,如果驗證碼有效則傳回 true,如果無效則傳回 false,如果錯誤則傳回 null發生在請求期間。

用法:

在您的程式碼中,只需寫:

if (isValid()) {
  // The user has passed the captcha validation.
} else {
  // The user has failed the captcha validation.
}
登入後複製

注意:

注意:注意:注意:確保將[YOUR SECRET KEY] 替換為提供的程式碼片段中的實際reCAPTCHA 金鑰。

以上是如何在 PHP 的伺服器端驗證 Google reCAPTCHA v3?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!