こちらは、クリックタイプの (以前の) reCAPTCHA 設置方法です。
新しい reCAPTCHA V3 の設置方法については、
(新) Google reCAPTCHA V3 リキャプチャ設置、設定方法 をご覧下さい。
“reCAPTCHA リキャプチャ” は、現在メールフォーム、もしくは会員登録の際等に用いられるスパム防止機能です。こちらは、クリックで認識する新しいタイプ (reCAPTCH V2) の設置方法を記していきます。
Google reCAPTCHA に登録してAPIキーを入手する
- まず始めに http://www.google.com/recaptcha/intro/
Google reCAPTCHA ページにアクセス、右上の青ボタン Get reCAPTCHA をクリック。Google アカウントをお持ちの方はそのまま次へ、無い方は登録して頂く必要があります。 - 次に各情報を入力します。
Label には任意の情報を (登録するウェブサイトのコンタクトフォーム等) 、
Choose the type of reCAPTCHA では、ウェブサイトの場合はreCAPTCHA V2 を選択。
するとドメインが入力される様になるので、ドメインを入力。こちらは基本は1つでいいはずです。最後に Terms of Service をクリックして登録。 - その後 Site Key Secret Key の2つが生成されていると思います。
Site Key は後に貼り付けるJavascript に使います、
Secret Key はサーバー側に使用する PHPコード (PHPの場合) に使用します。Secret Key は表に出さない様に気おつけて下さい。
head タグ内に以下のコードを貼り付け (head の閉じる直前に)
<script src='https://www.google.com/recaptcha/api.js'></script>
次に、Javascriptコードをフォームに貼り付ける
自分のフォームに実際にreCAPTCHAを設置します。まずは表側、下記のJavascriptを好みの場所に設置します。通常は送信、確認ボタン直前に入れるのがいいかと思います。ここの data-sitekey に先程入力したサイトキーを入力して下さい。
<div class="g-recaptcha" data-sitekey="Site Keyを入力"></div>
これで自分のフォームに reCAPTCHA が設置されたはずです。(必ず入手したAPIがドメインと符号しているのを確認して下さい。違うドメインの物だと表示されません。)しかしこのままでは動きませんので、次はサーバー側の設定に移ろうと思います。
PHPの設定をする
次はサーバー側の設定。Ajaxやその他の言語の設定方法もあるそうなのですが、今回はPHPでの設定を説明したいと思います。今回は、メールの受取側のスクリプトに以下のコードを設置。
<?php $captcha; if(isset($_POST['g-recaptcha-response'])){ $captcha=$_POST['g-recaptcha-response']; } if(!$captcha){ echo '<h2>reCAPTCHA にチェックを入れて下さい。</h2><br>'; echo "<a href=\"javascript:history.go(-1)\">Go Back</a>"; exit; } $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=Secret Keyを入力&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']); ?>
今回は Secret Key を使います。secret= 内に取得したコードを入れて下さい。受け取りに失敗した場合、のメッセージは必要に応じて書き換えて下さい。
後はこのコードをメールの受取のスクリプト内に組み込みます。以下に簡単なフォーム例を作りましたので、参考にしてみて下さい。実際メールは送信されないので試してみてもらっても結構です。
http://ja.samurai-web-works.com/demo/recaptcha-v2.html
いかがでしたでしょうか?実際 PHP コードに組み込むと、なると多少のコード書き換え知識が必要になります。今回は、reCAPTCHA 部分のみの公開にさせて頂きますが、これで基本的な Google reCAPTCHA リキャプチャ設置 はお分かりになったと思います。
前のバージョンの物より大分シンプルな設置方法になったと思います。