PHPを使用してメールフォームにgoogleの「reCAPTCHA v3」を実装
迷惑メールが増えてきたので、メールフォームに「reCAPTCHA v3」を設置したいとの相談を受けた際にPHPを使用して実装した手順をメモ。 Google「reCAPTCHA v3」に登録 まずはGoogle reCAPTCHAのサイト情報の登録画面にアクセスし、必要情報を入力。送信ボタンを押した後に表示される「サイトキー」と「シークレットキー」を取得します。※登録にはgoogleアカウントが必要です。 入力項目入力内容ラベル管理用の任意の文字列を入力reCAPTCHAタイプ「スコアベース(v3)」を選択ドメインreCAPTCHA v3を使うサイトのドメインを入力 Google reCAPTCHAのサイト情報の登録画面 Google reCAPTCHA v3をサイトに設置 メールフォームの設置されてるページに「reCAPTCHA v3」用のjavascriptとinputタグを設置します。 HTML <script src="https://www.google.com/recaptcha/api.js?render=サイトキー"></script> <script> grecaptcha.ready(function () { grecaptcha.execute('サイトキー', { action: 'submit' }).then(function (token) { document.getElementById('recaptcha_response').value = token; }); }); </script> <form action="sendmail.php" method="post"> <!-- reCAPTCHA v3 用タグ --> <input type="hidden" name="recaptcha_response" id="recaptcha_response"> <!-- reCAPTCHA v3 用タグ --> <dl> <dt>お名前</dt> <dd><input type="text" name="name"></dd> <dt>メールアドレス</dt> <dd><input type="text" name="email"></dd> <dt>電話番号</dt> <dd><input type="text" name="tel"></dd> <dt>お問い合わせの内容</dt> <dd> <textarea name="content"></textarea></dd> </dl> <div><input type="submit" name="submit" value="入力内容を確認する"></div> </form> PHP(sendmail.php) if(!empty($_POST['submit'])){ $secret_key = 'シークレットキー'; if(isset($_POST['recaptcha_response'])) { $token = $_POST['recaptcha_response']; }else{ $token = ''; } $remote_ip = $_SERVER['REMOTE_ADDR']; // トークンをGoogleに検証依頼 $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$secret_key}&response={$token}&remoteip={$remote_ip}"); $result = json_decode($response, true); // スコアのしきい値(例:0.5以上で人間と判断) if ($result["success"] && $result["score"] >= 0.5) { // 通過処理 ここにメール送信処理などを記述 } else { // botまたは不正なアクセスと判断 停止処理などを記述 } } 「reCAPTCHA v3」を利用する際の注意事項 「reCAPTCHA v3」の利用には費用が必要となります。月間1万アクセスまでであれば無料で利用ができますが、以降は利用した量に応じて費用が請求されます。多くの中小企業サイトであれば無料枠内で問題なく運用は可能かと思いますが、運用してみたら想定外の費用が必要になった、という事のないよう、アクセス解析等を確認しながら、どの程度の費用が必要となるかを事前に確認しておくのが良いです。 ワードプレスを使用している場合はプラグインを使うことでより簡単に実装ができるようです。 Google reCAPTCHA v3認証の導入方法 – 2025年度版




