Programmer's Reference Guide
| Zend_Service_Nirvanix |
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 オブジェクトのインスタンスを作成し、 公開鍵と秘密鍵を渡します。
例1 reCAPTCHA サービスのインスタンスの作成
- $recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);
reCAPTCHA をレンダリングするには、 getHTML() メソッドをコールするだけです。
例2 reCAPTCHA の表示
フォームから送信されてきた内容のうち、 'recaptcha_challenge_field' と 'recaptcha_response_field' のふたつのフィールドの内容を受け取らなければなりません。 これらを、reCAPTCHA オブジェクトの verify() メソッドに渡します。
例3 フォームフィールドの検証
- $result = $recaptcha->verify(
- $_POST['recaptcha_challenge_field'],
- $_POST['recaptcha_response_field']
- );
結果が得られたら、正しいものだったかどうかを確認します。結果は Zend_Service_ReCaptcha_Response オブジェクトとなり、 このオブジェクトは isValid() メソッドを提供しています。
例4 reCAPTCHA の検証
- if (!$result->isValid()) {
- // 検証に失敗
- }
reCAPTCHA Zend_Captcha アダプタを使うか、そのアダプタを CAPTCHA フォーム要素 のバックエンドとして使うことがもっと簡単です。 どちらの場合でも、reCAPTCHA のレンダリングや検証は自動化されます。
メールアドレスの隠蔽
Zend_Service_ReCaptcha_MailHide を使うと、 メールアドレスを隠蔽できます。メールアドレスの一部分を、 reCAPTCHA チャレンジのポップアップウィンドウに置き換えます。 チャレンジを解決すると、完全なメールアドレスがあらわれるというわけです。
このコンポーネントを使うには、 mailhide API 用の公開キーと秘密キーを生成するための » アカウント が必要です。
例5 mail hide コンポーネントの使用法
- // 隠したいメールアドレス
- $mail = 'mail@example.com';
- // mailhide コンポーネントのインスタンスを作成し、公開キーと秘密キー
- // そして隠したいメールアドレスを渡します
- $mailHide = new Zend_Service_ReCaptcha_Mailhide();
- $mailHide->setPublicKey($pubKey);
- $mailHide->setPrivateKey($privKey);
- $mailHide->setEmail($mail);
- // 表示します
上の例の表示は "m...@example.com" のようになり、 "..." のリンクは reCAPTCHA チャレンジのポップアップウィンドウを表示します。
公開キーと秘密キーそしてメールアドレスは、クラスのコンストラクタで指定することもできます。 4 番目の引数も存在し、ここでコンポーネントのオプションを設定できます。 使用できるオプションは次の表のとおりです。
| オプション | 説明 | 期待する値 | デフォルト値 |
|---|---|---|---|
| linkTitle | リンクの title 属性 | 文字列 | 'Reveal this e-mail address' |
| linkHiddenText | ポップアップリンクを含める文字列 | 文字列 | '...' |
| popupWidth | ポップアップウィンドウの幅 | int | 500 |
| popupHeight | ポップアップウィンドウの高さ | int | 300 |
オプションの設定は、コンストラクタの 4 番目の引数で指定する以外にも setOptions($options) メソッドで行うこともできます。 このメソッドには、連想配列あるいは Zend_Config のインスタンスを渡します。
例6 多数の隠しメールアドレスの作成
- // mailhide コンポーネントのインスタンスを作成し、公開キーと秘密キー
- // そして隠したいメールアドレスを渡します
- $mailHide = new Zend_Service_ReCaptcha_Mailhide();
- $mailHide->setPublicKey($pubKey);
- $mailHide->setPrivateKey($privKey);
- 'linkTitle' => 'Click me',
- 'linkHiddenText' => '+++++',
- ));
- // 隠したいメールアドレス
- 'mail@example.com',
- 'johndoe@example.com',
- 'janedoe@example.com',
- );
- foreach ($mailAddresses as $mail) {
- $mailHide->setEmail($mail);
- }
| Zend_Service_Nirvanix |
Select a Version
Languages Available
Components
Search the Manual
Navigation
- プログラマ向けリファレンスガイド
- プログラマ向けリファレンスガイド
- Zend_Service
- 導入
- Zend_Service_Akismet
- Zend_Service_Amazon
- Zend_Service_Amazon_Ec2
- Zend_Service_Amazon_Ec2: Instances
- Zend_Service_Amazon_Ec2: Windows Instances
- Zend_Service_Amazon_Ec2: Reserved Instances
- Zend_Service_Amazon_Ec2: CloudWatch Monitoring
- Zend_Service_Amazon_Ec2: Amazon Machine Images (AMI)
- Zend_Service_Amazon_Ec2: Elastic Block Stroage (EBS)
- Zend_Service_Amazon_Ec2: Elastic IP Addresses
- Zend_Service_Amazon_Ec2: Keypairs
- Zend_Service_Amazon_Ec2:リージョンおよび利用可能ゾーン
- Zend_Service_Amazon_Ec2: Security Groups
- Zend_Service_Amazon_S3
- Zend_Service_Amazon_Sqs
- Zend_Service_Audioscrobbler
- Zend_Service_Delicious
- Zend_Service_Flickr
- Zend_Service_Nirvanix
- Zend_Service_ReCaptcha
- Zend_Service_Simpy
- 導入
- Zend_Service_StrikeIron
- Zend_Service_StrikeIron: バンドルされているサービス
- Zend_Service_StrikeIron: 応用編
- Zend_Service_Technorati
- Zend_Service_Twitter
- Zend_Service_Yahoo
