| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.service.recaptcha">
- <title>Zend_Service_ReCaptcha(日本語)</title>
- <sect2 id="zend.service.recaptcha.introduction">
- <title>導入</title>
- <para>
- <classname>Zend_Service_ReCaptcha</classname> は <ulink
- url="http://recaptcha.net/">reCAPTCHA Web Service</ulink>
- 用のクライアントです。reCAPTCHA のサイトによると、
- "reCAPTCHA is a free CAPTCHA service that
- helps to digitize books
- (reCAPTCHA はフリーな CAPTCHA サービスで、
- 書籍の電子化を支援しています)" とのことです。
- reCAPTCHA は、ユーザにふたつの単語を入力させます。
- ひとつは実際の CAPTCHA で、もうひとつはスキャンされたテキスト
- (OCR ソフトウェアで認識できないもの) の単語です。
- ユーザが最初の単語を正しく入力したら、
- おそらく 2 番目の単語も正しく入力してくれるものとみなせます。
- その入力内容を使って、OCR ソフトウェアの能力を向上させるわけです。
- </para>
- <para>
- reCAPTCHA サービスを使用するには、<ulink
- url="http://recaptcha.net/whyrecaptcha.html">アカウントのサインアップ
- </ulink>
- が必要です。また公開鍵と秘密鍵を作成するには、
- サービスを使用するドメインを登録しなければなりません。
- </para>
- </sect2>
- <sect2 id="zend.service.recaptcha.simplestuse">
- <title>単純な使用法</title>
- <para>
- <classname>Zend_Service_ReCaptcha</classname> オブジェクトのインスタンスを作成し、
- 公開鍵と秘密鍵を渡します。
- </para>
- <example id="zend.service.recaptcha.example-1">
- <title>reCAPTCHA サービスのインスタンスの作成</title>
- <programlisting language="php"><![CDATA[
- $recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);
- ]]></programlisting>
- </example>
- <para>
- reCAPTCHA をレンダリングするには、
- <methodname>getHTML()</methodname> メソッドをコールするだけです。
- </para>
- <example id="zend.service.recaptcha.example-2">
- <title>reCAPTCHA の表示</title>
- <programlisting language="php"><![CDATA[
- echo $recaptcha->getHTML();
- ]]></programlisting>
- </example>
- <para>
- フォームから送信されてきた内容のうち、
- 'recaptcha_challenge_field' と 'recaptcha_response_field'
- のふたつのフィールドの内容を受け取らなければなりません。
- これらを、reCAPTCHA オブジェクトの <methodname>verify()</methodname>
- メソッドに渡します。
- </para>
- <example id="zend.service.recaptcha.example-3">
- <title>フォームフィールドの検証</title>
- <programlisting language="php"><![CDATA[
- $result = $recaptcha->verify(
- $_POST['recaptcha_challenge_field'],
- $_POST['recaptcha_response_field']
- );
- ]]></programlisting>
- </example>
- <para>
- 結果が得られたら、正しいものだったかどうかを確認します。結果は
- <classname>Zend_Service_ReCaptcha_Response</classname> オブジェクトとなり、
- このオブジェクトは <methodname>isValid()</methodname> メソッドを提供しています。
- </para>
- <example id="zend.service.recaptcha.example-4">
- <title>reCAPTCHA の検証</title>
- <programlisting language="php"><![CDATA[
- if (!$result->isValid()) {
- // 検証に失敗
- }
- ]]></programlisting>
- </example>
- <para>
- <link
- linkend="zend.captcha.adapters.recaptcha">reCAPTCHA</link>
- <classname>Zend_Captcha</classname> アダプタを使うか、そのアダプタを
- <link
- linkend="zend.form.standardElements.captcha">CAPTCHA
- フォーム要素</link>
- のバックエンドとして使うことがもっと簡単です。
- どちらの場合でも、reCAPTCHA のレンダリングや検証は自動化されます。
- </para>
- </sect2>
- <sect2 id="zend.service.recaptcha.mailhide">
- <title>メールアドレスの隠蔽</title>
- <para>
- <classname>Zend_Service_ReCaptcha_MailHide</classname> を使うと、
- メールアドレスを隠蔽できます。メールアドレスの一部分を、
- reCAPTCHA チャレンジのポップアップウィンドウに置き換えます。
- チャレンジを解決すると、完全なメールアドレスがあらわれるというわけです。
- </para>
- <para>
- このコンポーネントを使うには、
- mailhide <acronym>API</acronym> 用の公開キーと秘密キーを生成するための
- <ulink url="http://recaptcha.net/whyrecaptcha.html">アカウント</ulink>
- が必要です。
- </para>
- <example id="zend.service.recaptcha.mailhide.example-1">
- <title>mail hide コンポーネントの使用法</title>
- <programlisting language="php"><![CDATA[
- // 隠したいメールアドレス
- $mail = 'mail@example.com';
- // mailhide コンポーネントのインスタンスを作成し、公開キーと秘密キー
- // そして隠したいメールアドレスを渡します
- $mailHide = new Zend_Service_ReCaptcha_MailHide();
- $mailHide->setPublicKey($pubKey);
- $mailHide->setPrivateKey($privKey);
- $mailHide->setEmail($mail);
- // 表示します
- print($mailHide);
- ]]></programlisting>
- </example>
- <para>
- 上の例の表示は "m...@example.com" のようになり、 "..."
- のリンクは reCAPTCHA チャレンジのポップアップウィンドウを表示します。
- </para>
- <para>
- 公開キーと秘密キーそしてメールアドレスは、クラスのコンストラクタで指定することもできます。
- 4 番目の引数も存在し、ここでコンポーネントのオプションを設定できます。
- 使用できるオプションは次の表のとおりです。
- <table id="zend.service.recaptcha.mailhide.options.table">
- <title>Zend_Service_ReCaptcha_MailHide のオプション</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>オプション</entry>
- <entry>説明</entry>
- <entry>期待する値</entry>
- <entry>デフォルト値</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>linkTitle</entry>
- <entry>リンクの title 属性</entry>
- <entry>文字列</entry>
- <entry>'Reveal this e-mail address'</entry>
- </row>
- <row>
- <entry>linkHiddenText</entry>
- <entry>ポップアップリンクを含める文字列</entry>
- <entry>文字列</entry>
- <entry>'...'</entry>
- </row>
- <row>
- <entry>popupWidth</entry>
- <entry>ポップアップウィンドウの幅</entry>
- <entry>int</entry>
- <entry>500</entry>
- </row>
- <row>
- <entry>popupHeight</entry>
- <entry>ポップアップウィンドウの高さ</entry>
- <entry>int</entry>
- <entry>300</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </para>
- <para>
- オプションの設定は、コンストラクタの 4 番目の引数で指定する以外にも
- <methodname>setOptions($options)</methodname> メソッドで行うこともできます。
- このメソッドには、連想配列あるいは <link linkend="zend.config">Zend_Config</link>
- のインスタンスを渡します。
- </para>
- <example id="zend.service.recaptcha.mailhide.example-2">
- <title>多数の隠しメールアドレスの作成</title>
- <programlisting language="php"><![CDATA[
- // mailhide コンポーネントのインスタンスを作成し、公開キーと秘密キー
- // そして隠したいメールアドレスを渡します
- $mailHide = new Zend_Service_ReCaptcha_MailHide();
- $mailHide->setPublicKey($pubKey);
- $mailHide->setPrivateKey($privKey);
- $mailHide->setOptions(array(
- 'linkTitle' => 'Click me',
- 'linkHiddenText' => '+++++',
- ));
- // 隠したいメールアドレス
- $mailAddresses = array(
- 'mail@example.com',
- 'johndoe@example.com',
- 'janedoe@example.com',
- );
- foreach ($mailAddresses as $mail) {
- $mailHide->setEmail($mail);
- print($mailHide);
- }
- ]]></programlisting>
- </example>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|