Zend_Service-ReCaptcha.xml 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="zend.service.recaptcha">
  5. <title>Zend_Service_ReCaptcha(日本語)</title>
  6. <sect2 id="zend.service.recaptcha.introduction">
  7. <title>導入</title>
  8. <para>
  9. <classname>Zend_Service_ReCaptcha</classname> は <ulink
  10. url="http://recaptcha.net/">reCAPTCHA Web Service</ulink>
  11. 用のクライアントです。reCAPTCHA のサイトによると、
  12. "reCAPTCHA is a free CAPTCHA service that
  13. helps to digitize books
  14. (reCAPTCHA はフリーな CAPTCHA サービスで、
  15. 書籍の電子化を支援しています)" とのことです。
  16. reCAPTCHA は、ユーザにふたつの単語を入力させます。
  17. ひとつは実際の CAPTCHA で、もうひとつはスキャンされたテキスト
  18. (OCR ソフトウェアで認識できないもの) の単語です。
  19. ユーザが最初の単語を正しく入力したら、
  20. おそらく 2 番目の単語も正しく入力してくれるものとみなせます。
  21. その入力内容を使って、OCR ソフトウェアの能力を向上させるわけです。
  22. </para>
  23. <para>
  24. reCAPTCHA サービスを使用するには、<ulink
  25. url="http://recaptcha.net/whyrecaptcha.html">アカウントのサインアップ
  26. </ulink>
  27. が必要です。また公開鍵と秘密鍵を作成するには、
  28. サービスを使用するドメインを登録しなければなりません。
  29. </para>
  30. </sect2>
  31. <sect2 id="zend.service.recaptcha.simplestuse">
  32. <title>単純な使用法</title>
  33. <para>
  34. <classname>Zend_Service_ReCaptcha</classname> オブジェクトのインスタンスを作成し、
  35. 公開鍵と秘密鍵を渡します。
  36. </para>
  37. <example id="zend.service.recaptcha.example-1">
  38. <title>reCAPTCHA サービスのインスタンスの作成</title>
  39. <programlisting language="php"><![CDATA[
  40. $recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);
  41. ]]></programlisting>
  42. </example>
  43. <para>
  44. reCAPTCHA をレンダリングするには、
  45. <methodname>getHTML()</methodname> メソッドをコールするだけです。
  46. </para>
  47. <example id="zend.service.recaptcha.example-2">
  48. <title>reCAPTCHA の表示</title>
  49. <programlisting language="php"><![CDATA[
  50. echo $recaptcha->getHTML();
  51. ]]></programlisting>
  52. </example>
  53. <para>
  54. フォームから送信されてきた内容のうち、
  55. 'recaptcha_challenge_field' と 'recaptcha_response_field'
  56. のふたつのフィールドの内容を受け取らなければなりません。
  57. これらを、reCAPTCHA オブジェクトの <methodname>verify()</methodname>
  58. メソッドに渡します。
  59. </para>
  60. <example id="zend.service.recaptcha.example-3">
  61. <title>フォームフィールドの検証</title>
  62. <programlisting language="php"><![CDATA[
  63. $result = $recaptcha->verify(
  64. $_POST['recaptcha_challenge_field'],
  65. $_POST['recaptcha_response_field']
  66. );
  67. ]]></programlisting>
  68. </example>
  69. <para>
  70. 結果が得られたら、正しいものだったかどうかを確認します。結果は
  71. <classname>Zend_Service_ReCaptcha_Response</classname> オブジェクトとなり、
  72. このオブジェクトは <methodname>isValid()</methodname> メソッドを提供しています。
  73. </para>
  74. <example id="zend.service.recaptcha.example-4">
  75. <title>reCAPTCHA の検証</title>
  76. <programlisting language="php"><![CDATA[
  77. if (!$result->isValid()) {
  78. // 検証に失敗
  79. }
  80. ]]></programlisting>
  81. </example>
  82. <para>
  83. <link
  84. linkend="zend.captcha.adapters.recaptcha">reCAPTCHA</link>
  85. <classname>Zend_Captcha</classname> アダプタを使うか、そのアダプタを
  86. <link
  87. linkend="zend.form.standardElements.captcha">CAPTCHA
  88. フォーム要素</link>
  89. のバックエンドとして使うことがもっと簡単です。
  90. どちらの場合でも、reCAPTCHA のレンダリングや検証は自動化されます。
  91. </para>
  92. </sect2>
  93. <sect2 id="zend.service.recaptcha.mailhide">
  94. <title>メールアドレスの隠蔽</title>
  95. <para>
  96. <classname>Zend_Service_ReCaptcha_MailHide</classname> を使うと、
  97. メールアドレスを隠蔽できます。メールアドレスの一部分を、
  98. reCAPTCHA チャレンジのポップアップウィンドウに置き換えます。
  99. チャレンジを解決すると、完全なメールアドレスがあらわれるというわけです。
  100. </para>
  101. <para>
  102. このコンポーネントを使うには、
  103. mailhide <acronym>API</acronym> 用の公開キーと秘密キーを生成するための
  104. <ulink url="http://recaptcha.net/whyrecaptcha.html">アカウント</ulink>
  105. が必要です。
  106. </para>
  107. <example id="zend.service.recaptcha.mailhide.example-1">
  108. <title>mail hide コンポーネントの使用法</title>
  109. <programlisting language="php"><![CDATA[
  110. // 隠したいメールアドレス
  111. $mail = 'mail@example.com';
  112. // mailhide コンポーネントのインスタンスを作成し、公開キーと秘密キー
  113. // そして隠したいメールアドレスを渡します
  114. $mailHide = new Zend_Service_ReCaptcha_MailHide();
  115. $mailHide->setPublicKey($pubKey);
  116. $mailHide->setPrivateKey($privKey);
  117. $mailHide->setEmail($mail);
  118. // 表示します
  119. print($mailHide);
  120. ]]></programlisting>
  121. </example>
  122. <para>
  123. 上の例の表示は "m...@example.com" のようになり、 "..."
  124. のリンクは reCAPTCHA チャレンジのポップアップウィンドウを表示します。
  125. </para>
  126. <para>
  127. 公開キーと秘密キーそしてメールアドレスは、クラスのコンストラクタで指定することもできます。
  128. 4 番目の引数も存在し、ここでコンポーネントのオプションを設定できます。
  129. 使用できるオプションは次の表のとおりです。
  130. <table id="zend.service.recaptcha.mailhide.options.table">
  131. <title>Zend_Service_ReCaptcha_MailHide のオプション</title>
  132. <tgroup cols="4">
  133. <thead>
  134. <row>
  135. <entry>オプション</entry>
  136. <entry>説明</entry>
  137. <entry>期待する値</entry>
  138. <entry>デフォルト値</entry>
  139. </row>
  140. </thead>
  141. <tbody>
  142. <row>
  143. <entry>linkTitle</entry>
  144. <entry>リンクの title 属性</entry>
  145. <entry>文字列</entry>
  146. <entry>'Reveal this e-mail address'</entry>
  147. </row>
  148. <row>
  149. <entry>linkHiddenText</entry>
  150. <entry>ポップアップリンクを含める文字列</entry>
  151. <entry>文字列</entry>
  152. <entry>'...'</entry>
  153. </row>
  154. <row>
  155. <entry>popupWidth</entry>
  156. <entry>ポップアップウィンドウの幅</entry>
  157. <entry>int</entry>
  158. <entry>500</entry>
  159. </row>
  160. <row>
  161. <entry>popupHeight</entry>
  162. <entry>ポップアップウィンドウの高さ</entry>
  163. <entry>int</entry>
  164. <entry>300</entry>
  165. </row>
  166. </tbody>
  167. </tgroup>
  168. </table>
  169. </para>
  170. <para>
  171. オプションの設定は、コンストラクタの 4 番目の引数で指定する以外にも
  172. <methodname>setOptions($options)</methodname> メソッドで行うこともできます。
  173. このメソッドには、連想配列あるいは <link linkend="zend.config">Zend_Config</link>
  174. のインスタンスを渡します。
  175. </para>
  176. <example id="zend.service.recaptcha.mailhide.example-2">
  177. <title>多数の隠しメールアドレスの作成</title>
  178. <programlisting language="php"><![CDATA[
  179. // mailhide コンポーネントのインスタンスを作成し、公開キーと秘密キー
  180. // そして隠したいメールアドレスを渡します
  181. $mailHide = new Zend_Service_ReCaptcha_MailHide();
  182. $mailHide->setPublicKey($pubKey);
  183. $mailHide->setPrivateKey($privKey);
  184. $mailHide->setOptions(array(
  185. 'linkTitle' => 'Click me',
  186. 'linkHiddenText' => '+++++',
  187. ));
  188. // 隠したいメールアドレス
  189. $mailAddresses = array(
  190. 'mail@example.com',
  191. 'johndoe@example.com',
  192. 'janedoe@example.com',
  193. );
  194. foreach ($mailAddresses as $mail) {
  195. $mailHide->setEmail($mail);
  196. print($mailHide);
  197. }
  198. ]]></programlisting>
  199. </example>
  200. </sect2>
  201. </sect1>
  202. <!--
  203. vim:se ts=4 sw=4 et:
  204. -->