Zend_Captcha-Operation.xml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 14978 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.captcha.operation">
  5. <title>Captcha Anwendung</title>
  6. <para>
  7. Alle CAPTCHA Adapter implementieren <classname>Zend_Captcha_Adapter</classname>, welches wie folgt
  8. aussieht:
  9. </para>
  10. <programlisting role="php"><![CDATA[
  11. interface Zend_Captcha_Adapter extends Zend_Validate_Interface
  12. {
  13. public function generate();
  14. public function render(Zend_View $view, $element = null);
  15. public function setName($name);
  16. public function getName();
  17. public function getDecorator();
  18. // Zusätzlich um das Zend_Validate_Interface zu befriedigen:
  19. public function isValid($value);
  20. public function getMessages();
  21. public function getErrors();
  22. }
  23. ]]>
  24. </programlisting>
  25. <para>
  26. Die benannten Getter- und Settermethoden werden verwenden um den CAPTCHA Identifikator zu
  27. spezifizieren und zu empfangen. <code>getDecorator()</code> kann verwendet werden um einen
  28. <classname>Zend_Form</classname> Dekorator entweder durch seinen Namen zu spezifizieren oder indem
  29. ein aktuelles Dekoratorobjekt zurückgegeben wird. Der interessantesten Methoden sind aber
  30. <code>generate()</code> und <code>render()</code>. <code>generate()</code> wird verwendet
  31. um das CAPTCHA Token zu erstellen. Dieser Prozess speichert das Token typischerweise in der
  32. Session damit es in nachfolgenden Anfragen verglichen werden kann. <code>render()</code> wird
  33. verwendet um die Informationen die das CAPTCHA repräsentieren darzustellen - ob es ein Bild ist,
  34. ein Figlet, ein logisches Problem, oder andere CAPTCHA.
  35. </para>
  36. <para>
  37. Ein typischer Verwendungsfall könnte wie folgt aussehen:
  38. </para>
  39. <programlisting role="php"><![CDATA[
  40. // Eine Instanz von Zend_View erstellen
  41. $view = new Zend_View();
  42. // Originale Anfrage:
  43. $captcha = new Zend_Captcha_Figlet(array(
  44. 'name' => 'foo',
  45. 'wordLen' => 6,
  46. 'timeout' => 300,
  47. ));
  48. $id = $captcha->generate();
  49. echo $captcha->render($view);
  50. // Eine nachfolgende Anfrage:
  51. // Annahme das das Captcha vorher eingestellt wurde, und $value der
  52. // übertragene Wert ist:
  53. if ($captcha->isValid($_POST['foo'], $_POST)) {
  54. // Validated!
  55. }
  56. ]]>
  57. </programlisting>
  58. </sect1>
  59. <!--
  60. vim:se ts=4 sw=4 et:
  61. -->