| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.captcha.operation">
- <title>Captcha Anwendung</title>
- <para>
- Alle <acronym>CAPTCHA</acronym> Adapter implementieren
- <classname>Zend_Captcha_Adapter</classname>, welches wie folgt aussieht:
- </para>
- <programlisting language="php"><![CDATA[
- interface Zend_Captcha_Adapter extends Zend_Validate_Interface
- {
- public function generate();
- public function render(Zend_View $view, $element = null);
- public function setName($name);
- public function getName();
- public function getDecorator();
- // Zusätzlich um das Zend_Validate_Interface zu befriedigen:
- public function isValid($value);
- public function getMessages();
- public function getErrors();
- }
- ]]></programlisting>
- <para>
- Die benannten Getter- und Settermethoden werden verwenden um den <acronym>CAPTCHA</acronym>
- Identifikator zu spezifizieren und zu empfangen. <methodname>getDecorator()</methodname>
- kann verwendet werden um einen <classname>Zend_Form</classname> Dekorator entweder durch
- seinen Namen zu Spezifizieren oder indem ein aktuelles Dekoratorobjekt zurückgegeben wird.
- Der interessantesten Methoden sind aber <methodname>generate()</methodname> und
- <methodname>render()</methodname>. <methodname>generate()</methodname> wird verwendet um
- das <acronym>CAPTCHA</acronym> Token zu erstellen. Dieser Prozess speichert das Token
- typischerweise in der Session damit es in nachfolgenden Anfragen verglichen werden kann.
- <methodname>render()</methodname> wird verwendet um die Informationen die das
- <acronym>CAPTCHA</acronym> repräsentieren darzustellen - ob es ein Bild ist, ein Figlet,
- ein logisches Problem, oder andere <acronym>CAPTCHA</acronym>.
- </para>
- <para>
- Ein typischer Verwendungsfall könnte wie folgt aussehen:
- </para>
- <programlisting language="php"><![CDATA[
- // Eine Instanz von Zend_View erstellen
- $view = new Zend_View();
- // Originale Anfrage:
- $captcha = new Zend_Captcha_Figlet(array(
- 'name' => 'foo',
- 'wordLen' => 6,
- 'timeout' => 300,
- ));
- $id = $captcha->generate();
- echo "<form method=\"post\" action=\"\">";
- echo $captcha->render($view);
- echo "</form>";
- // Eine nachfolgende Anfrage:
- // Angenommen das Captcha wurde wie vorher eingestellt, dann wäre der Wert von
- // $_POST['foo'] ein Schlüssel/Wert Array:
- // id => captcha ID, input => captcha value
- if ($captcha->isValid($_POST['foo'], $_POST)) {
- // Validated!
- }
- ]]></programlisting>
- </sect1>
|