重要: reCAPTCHA API のバージョン 1.0 のサポートは終了しました。バージョン 2.0 にアップグレードしてください。詳細
reCAPTCHA PHP ライブラリは、簡単な方法で CAPTCHA を bot による悪用を防止できます。ライブラリは、 reCAPTCHA API。
PHP で reCAPTCHA を使用するには、reCAPTCHA PHP をダウンロードできます。 ライブラリ。必要なのは 1 つのファイル(recaptchalib.php)のみです。その他のファイルは、 例、readme、法的事項は機能に影響しません。
クイック スタート
API キーを登録したら、以下に reCAPTCHA をサイトにインストールするための基本的な手順を示します。フル PHP プラグインのリファレンス ガイドをご覧ください。
クライアントサイド(CAPTCHA 画像の表示方法)
PHP ライブラリを使用して reCAPTCHA ウィジェットを表示するには、 <form> 内にコード スニペットを配置して、要素を追加して、reCAPTCHA ウィジェットを配置します。 place:
require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey);
このコードでは、フォームは次のようになります。
<html> <body> <!-- the body tag is required or the CAPTCHA may not show on some browsers --> <!-- your HTML content --> <form method="post" action="verify.php"> <?php require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey); ?> <input type="submit" /> </form> <!-- more of your HTML content --> </body> </html>
$publickey の設定を忘れないでください。その場合は、your_public_key
を
API 公開鍵を使用します。
"action" の値として、属性が「verify.php」です。Verify.php が このフォームの値の送信先となる宛先ファイル。そのためファイルと Verify.php をクライアント html と同じ場所に置く必要があります。
上記の例の require_once 関数では、recaptchalib.php が同じプロジェクトに存在することが
ディレクトリに配置します。別のディレクトリにある場合、適切にリンクする必要があります。
たとえば、recaptchalib.php が「captcha」というディレクトリにある場合などです。対応する
場合、関数は次のようになります。
require_once('captcha/recaptchalib.php')
。
サーバーサイド(ユーザーが正しい回答を入力したかどうかをテストする方法)
次のコードを Verify.php ファイルの先頭に配置します。
<?php require_once('recaptchalib.php'); $privatekey = "your_private_key"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { // What happens when the CAPTCHA was entered incorrectly die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")"); } else { // Your code here to handle a successful verification } ?>
上記のコードでは、次のようになります。
recaptcha_check_answer
は、ユーザーが操作を行ったかどうかを表すオブジェクトを返します。
チャレンジを無事に完了しました。$resp->is_valid
が true の場合、キャプチャ チャレンジは正しく完了しています。フォームの処理を続行する必要があります。$resp->is_valid
が false の場合、ユーザーが正しいキャプチャを指定していないことを示します。
再度確認できるように、フォームを再表示する必要があります。今回の場合
$resp->error
は、recaptcha_get_html
に提供可能なエラーコードです。
エラーコードを渡すと、reCAPTCHA コントロールに、ユーザーが入力したことを示すメッセージが表示される
テキストが間違っていたため、もう一度試してください。このコードは秘密鍵を要求していることに注意してください。これを混同しないように注意してください。 渡されます。公開鍵は、公開鍵と同じページから入手します。
また、フォームが、 $_REQUEST_REQUEST_SCHEMA_REQUEST_POST !
これで完了です。これで reCAPTCHA がサイトで機能するようになりました。
関連情報
PHP プラグイン リファレンス ガイド
以下に、reCAPTCHA PHP プラグインのすべてのメソッドの一覧を示します。
recaptcha_get_html 関数
recaptcha_get_html
関数は、reCAPTCHA を表示する HTML を表示します。
できます。
recaptcha_get_html | |
パラメータ | |
$pubkey -- 文字列。必要ありません。 | API 登録ページから取得した reCAPTCHA 公開鍵 |
$error -- 文字列。省略可(デフォルトは null) | この文字列が設定されている場合、reCAPTCHA の領域にエラーコードが表示されます できます。このエラーコードは ReCaptchaResponse->$error から取得されます。 |
$use_ssl -- boolean.省略可(デフォルトは false) | SSL ベースの API を使用する必要はありますか?ユーザーにページを表示している場合は、 true に設定して、エラー ダイアログで 表示されます。 |
戻り値 | ウェブページ上に配置する HTML を含む文字列。 |
recaptcha_check_answer 関数
ユーザーが HTML フォーム(CAPTCHA に対する回答を含む)を入力すると、
フォームの送信時に回答を確認したい場合は、
recaptcha_check_answer
関数を使用します。ユーザーの回答は 2 つのフォーム項目と
recaptcha_challenge_field
と recaptcha_response_field
。「
reCAPTCHA ライブラリは、reCAPTCHA サーバーに HTTP リクエストを行い、ユーザーの
あります。
recaptcha_check_answer | |
パラメータ | |
$privkey -- 文字列。必要ありません。 | API 登録ページの reCAPTCHA 秘密鍵。 |
$remoteip -- 文字列。必要ありません。 | ユーザーの IP アドレス(192.168.0.1 の形式) |
$challenge -- 文字列。必要ありません。 |
フォーム フィールド reCAPTCHA_challenge_field の値 |
$response -- 文字列。必須 | フォーム フィールド recaptcha_response_field の値 |
戻り値 | ReCaptchaResponse クラスのインスタンス |
ReCaptchaResponse | |
フィールド | |
$is_valid -- boolean | reCAPTCHA は、回答が有効であると認識しましたか? |
$error -- 文字列 | 回答が無効だった場合、どのような問題がありましたか?このエラーコードは recaptcha_get_html で使用されます |
戻り値 | メールアドレスをデコードするための HTML または未加工の URL(使用する機能によって異なります) 呼び出すことができます。 |
メールハイド
reCAPTCHA PHP ライブラリには、Mailhide API 用のバインディングが含まれています。この API を使用すると、reCAPTCHA でメールをラップして、スパマーに見られないようにすることができます。 test...@example.com となります。
PHP ライブラリの Mailhide 部分には PHP mcrypt モジュールが必要です。
Mailhide API は recaptcha_mailhide_html
と
recaptcha_mailhide_url
。関数には同じパラメータがあります。_html バージョン
は HTML を返します。
ウェブページに直接配置できます渡されるメールのユーザー名部分
は切り捨てられ、Mailhide を呼び出すリンクに置き換えられます。_url 版では、URL を指定します。
をデコードし、HTML 形式でメールを配置するかどうかは任意です。
recaptcha_mailhide_url / recaptcha_mailhide_html | |
パラメータ | |
$pubkey -- 文字列 | 登録ページの Mailhide 公開鍵 |
$privkey -- 文字列 | 登録ページの Mailhide 秘密鍵 |
$email -- 文字列 | 非表示にするメールアドレス。 |
次の例は、Mailhide の使用方法を示しています。
<html><body> <? require_once ("recaptchalib.php"); // get a key at http://www.google.com/recaptcha/mailhide/apikey $mailhide_pubkey = ''; $mailhide_privkey = ''; ?> The Mailhide encoding of example@example.com is <? echo recaptcha_mailhide_html ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?>. <br> The url for the email is: <? echo recaptcha_mailhide_url ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?> <br> </body></html>