Zend_Service-ReCaptcha.xml 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 21819 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.service.recaptcha">
  5. <title>Zend_Service_ReCaptcha</title>
  6. <sect2 id="zend.service.recaptcha.introduction">
  7. <title>Einführung</title>
  8. <para>
  9. <classname>Zend_Service_ReCaptcha</classname> bietet einen Client für das <ulink
  10. url="http://recaptcha.net/">reCAPTCHA Web Service</ulink>. Laut der reCAPTCHA Seite
  11. ist "reCAPTCHA ein freies CAPTCHA Service das hilft Bücher zu digitalisieren." Jedes
  12. reCAPTCHA verlangt das der Benutzer zwei Wörter eingibt, das erste ist das aktuelle
  13. CAPTCHA, und das zweite ist ein Wort von einem eingescannten Text bei dem Software für
  14. optische Zeichenerkennung (OCR) keine Identifizierung durchführen kann. Die Annahme ist
  15. das, wenn der Benutzer das erste Wort richtig angegeben hat, dass dann das zweite auch
  16. korrekt angegeben wird, und das dieses dann verwendet werden kann um OCR Software für
  17. die Digitalisierung von Büchern zu verbessern.
  18. </para>
  19. <para>
  20. Um den reCAPTCHA Service zu verwenden muß man
  21. <ulink url="http://recaptcha.net/whyrecaptcha.html">einen Account unterzeichnen</ulink>
  22. und eine oder mehrere Domains beim Service registrieren um öffentliche und private
  23. Schlüssel zu erzeugen.
  24. </para>
  25. </sect2>
  26. <sect2 id="zend.service.recaptcha.simplestuse">
  27. <title>Einfachste Verwendung</title>
  28. <para>
  29. Ein <classname>Zend_Service_ReCaptcha</classname> Objekt instanzieren, und ihm den
  30. öffentlichen und privaten Schlüssel übergeben:
  31. </para>
  32. <example id="zend.service.recaptcha.example-1">
  33. <title>Erstellung einer Instanz des reCAPTCHA Services</title>
  34. <programlisting language="php"><![CDATA[
  35. $recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);
  36. ]]></programlisting>
  37. </example>
  38. <para>
  39. Um das reCAPTCHA darzustellen, muß einfach die <methodname>getHTML()</methodname>
  40. Methode aufgerufen werden:
  41. </para>
  42. <example id="zend.service.recaptcha.example-2">
  43. <title>Das reCAPTCHA darstellen</title>
  44. <programlisting language="php"><![CDATA[
  45. echo $recaptcha->getHTML();
  46. ]]></programlisting>
  47. </example>
  48. <para>
  49. Wenn das Formular übertragen wurde, sollte man zwei Felder empfangen haben,
  50. 'recaptcha_challenge_field' und 'recaptcha_response_field'. Diese sind an die
  51. <methodname>verify()</methodname> Methode des reCAPTCHA Objekts zu übergeben:
  52. </para>
  53. <example id="zend.service.recaptcha.example-3">
  54. <title>Das Formular Feld verifizieren</title>
  55. <programlisting language="php"><![CDATA[
  56. $result = $recaptcha->verify(
  57. $_POST['recaptcha_challenge_field'],
  58. $_POST['recaptcha_response_field']
  59. );
  60. ]]></programlisting>
  61. </example>
  62. <para>
  63. Sobald man das Ergebnis hat, kann es getestet werden um zu sehen ob es gültig ist. Das
  64. Ergebnis ist ein <classname>Zend_Service_ReCaptcha_Response</classname> Objekt, welche
  65. eine <methodname>isValid()</methodname> Methode anbietet.
  66. </para>
  67. <example id="zend.service.recaptcha.example-4">
  68. <title>Das reCAPTCHA prüfen</title>
  69. <programlisting language="php"><![CDATA[
  70. if (!$result->isValid()) {
  71. // Fehlerhafte Prüfung
  72. }
  73. ]]></programlisting>
  74. </example>
  75. <para>
  76. Noch einfacher zu verwenden ist
  77. <link linkend="zend.captcha.adapters.recaptcha">der ReCaptcha</link>
  78. <classname>Zend_Captcha</classname> Adapter, oder man verwendet diesen Adapter als
  79. Backend für das <link
  80. linkend="zend.form.standardElements.captcha">CAPTCHA Formularelement</link>.
  81. In jedem Fall werden die Details der Darstellung und Prüfung des reCAPTCHA
  82. automatisch durchgeführt.
  83. </para>
  84. </sect2>
  85. <sect2 id="zend.service.recaptcha.mailhide">
  86. <title>Email Adressen verstecken</title>
  87. <para>
  88. <classname>Zend_Service_ReCaptcha_MailHide</classname> kann verwendet werden um Email
  89. Adressen zu verstecken. Es ersetzt den Teil der Email Adresse mit einem Link der ein
  90. Popup Fenster mit einer reCAPTCHA Challenge öffnet. Das Lösen der Challenge gibt die
  91. komplette Email Adresse zurück.
  92. </para>
  93. <para>
  94. Um diese Komponente zu verwenden benötigt man
  95. <ulink url="http://recaptcha.net/whyrecaptcha.html">einen Account</ulink> um
  96. öffentliche und private Schlüssel für die Mailhide <acronym>API</acronym> erstellen.
  97. </para>
  98. <example id="zend.service.recaptcha.mailhide.example-1">
  99. <title>Verwenden der Mail Hide Komponente</title>
  100. <programlisting language="php"><![CDATA[
  101. // Die Mail Adresse die wir verstecken wollen
  102. $mail = 'mail@example.com';
  103. // Eine Instanz der Mailhide Komponente erstellen, dieser die öffentlichen und
  104. // privaten Schlüssel übergeben sowie die Mail Adresse die man verstecken will
  105. $mailHide = new Zend_Service_ReCaptcha_Mailhide();
  106. $mailHide->setPublicKey($pubKey);
  107. $mailHide->setPrivateKey($privKey);
  108. $mailHide->setEmail($mail);
  109. // Es darstellen
  110. print($mailHide);
  111. ]]></programlisting>
  112. </example>
  113. <para>
  114. Das obige Beispiel zeigt "m...@example.com" wobei "..." einen Link enthält der sich
  115. mit einem Popup Fenster und einer reCAPTCHA Challenge öffnet.
  116. </para>
  117. <para>
  118. Der öffentliche Schlüssel, der private Schlüssel, und die Email Adresse können auch im
  119. Konstruktor der Klasse spezifiziert werden. Es existiert ein viertes Argument das es
  120. erlaubt einige Optionen für die Komponente zu setzen. Die vorhandenen Optionen sind in
  121. der folgenden Tabelle aufgelistet:
  122. <table id="zend.service.recaptcha.mailhide.options.table">
  123. <title>Zend_Service_ReCaptcha_MailHide options</title>
  124. <tgroup cols="4">
  125. <thead>
  126. <row>
  127. <entry>Option</entry>
  128. <entry>Beschreibung</entry>
  129. <entry>Erwartete Werte</entry>
  130. <entry>Standard Werte</entry>
  131. </row>
  132. </thead>
  133. <tbody>
  134. <row>
  135. <entry>linkTitle</entry>
  136. <entry>Das Titel Attribut des Links</entry>
  137. <entry>string</entry>
  138. <entry>'Reveal this e-mail address'</entry>
  139. </row>
  140. <row>
  141. <entry>linkHiddenText</entry>
  142. <entry>Der Text welche den Popup Link enthält</entry>
  143. <entry>string</entry>
  144. <entry>'...'</entry>
  145. </row>
  146. <row>
  147. <entry>popupWidth</entry>
  148. <entry>Die Breite des Popup Fensters</entry>
  149. <entry>int</entry>
  150. <entry>500</entry>
  151. </row>
  152. <row>
  153. <entry>popupHeight</entry>
  154. <entry>Die Höhe des Popup Fensters</entry>
  155. <entry>int</entry>
  156. <entry>300</entry>
  157. </row>
  158. </tbody>
  159. </tgroup>
  160. </table>
  161. </para>
  162. <para>
  163. Die Konfigurations Optionen können gesetzt werden indem Sie als viertes Argument an den
  164. Konstruktor gesendet werden oder indem die <methodname>setOptions($options)</methodname>
  165. aufgerufen wird, welche ein assoziatives Array oder eine Instanz von
  166. <link linkend="zend.config">Zend_Config</link> entgegen nimmt.
  167. </para>
  168. <example id="zend.service.recaptcha.mailhide.example-2">
  169. <title>Viele versteckte Email Adressen erzeugen</title>
  170. <programlisting language="php"><![CDATA[
  171. // Eine Instanz der Mailhide Komponente erstellen, dieser die öffentlichen und
  172. // privaten Schlüssel übergeben sowie einige Konfigurations Optionen
  173. $mailHide = new Zend_Service_ReCaptcha_Mailhide();
  174. $mailHide->setPublicKey($pubKey);
  175. $mailHide->setPrivateKey($privKey);
  176. $mailHide->setOptions(array(
  177. 'linkTitle' => 'Click me',
  178. 'linkHiddenText' => '+++++',
  179. ));
  180. // Die Mail Adressen die wir verstecken wollen
  181. $mailAddresses = array(
  182. 'mail@example.com',
  183. 'johndoe@example.com',
  184. 'janedoe@example.com',
  185. );
  186. foreach ($mailAddresses as $mail) {
  187. $mailHide->setEmail($mail);
  188. print($mailHide);
  189. }
  190. ]]></programlisting>
  191. </example>
  192. </sect2>
  193. </sect1>