Zend_Service_ReCaptcha
導入
Zend_Service_ReCaptcha は reCAPTCHA Web Service
用のクライアントです。reCAPTCHA のサイトによると、
"reCAPTCHA is a free CAPTCHA service that
helps to digitize books
(reCAPTCHA はフリーな CAPTCHA サービスで、
書籍の電子化を支援しています)" とのことです。
reCAPTCHA は、ユーザにふたつの単語を入力させます。
ひとつは実際の captcha で、もうひとつはスキャンされたテキスト
(OCR ソフトウェアで認識できないもの) の単語です。
ユーザが最初の単語を正しく入力したら、
おそらく 2 番目の単語も正しく入力してくれるものとみなせます。
その入力内容を使って、OCR ソフトウェアの能力を向上させるわけです。
reCAPTCHA サービスを使用するには、アカウントのサインアップ
が必要です。また公開鍵と秘密鍵を作成するには、
サービスを使用するドメインを登録しなければなりません。
単純な使用法
Zend_Service_ReCaptcha オブジェクトのインスタンスを作成し、
公開鍵と秘密鍵を渡します。
reCAPTCHA をレンダリングするには、
getHTML() メソッドをコールするだけです。
getHTML();
]]>
フォームから送信されてきた内容のうち、
'recaptcha_challenge_field' と 'recaptcha_response_field'
のふたつのフィールドの内容を受け取らなければなりません。
これらを、ReCaptcha オブジェクトの verify()
メソッドに渡します。
verify(
$_POST['recaptcha_challenge_field'],
$_POST['recaptcha_response_field']
);
]]>
結果が得られたら、正しいものだったかどうかを確認します。結果は
Zend_Service_ReCaptcha_Response オブジェクトとなり、
このオブジェクトは isValid() メソッドを提供しています。
isValid()) {
// 検証に失敗
}
]]>
もっと簡単な使用法は、ReCaptcha
Zend_Captcha アダプタを使うか、そのアダプタを
Captcha
フォーム要素
のバックエンドとして使用することです。
どちらの場合でも、reCAPTCHA のレンダリングや検証は自動化されます。