ホームページ >バックエンド開発 >PHPチュートリアル >PHP のサーバー側で Google reCAPTCHA v3 を確認するにはどうすればよいですか?

PHP のサーバー側で Google reCAPTCHA v3 を確認するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-31 13:18:021035ブラウズ

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 を返します。

使用法:

コード内で、単にwrite:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。