| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15207 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.captcha.adapters">
- <title>CAPTCHA Adapter</title>
- <para>
- Die folgenden Adapter werden mit dem Zend Framework standardmäßig ausgeliefert.
- </para>
- <sect2 id="zend.captcha.adapters.word">
- <title>Zend_Captcha_Word</title>
- <para>
- <classname>Zend_Captcha_Word</classname> ist ein abstrakter Adapter der als Basisklasse für die
- meisten anderen CAPTCHA Adapter fungiert. Er bietet Mutatoren für die Spezifizierung der
- Wortlänge, Session TTL, das Session Namespaceobjekt das verwendet werden soll, und die
- Session Namespaceklasse die für die Persistenz zu verwenden ist wenn man
- <classname>Zend_Session_Namespace</classname> nicht verwenden will. <classname>Zend_Captcha_Word</classname>
- kapselt die Prüflogik.
- </para>
- <para>
- Standardmäßig ist die Wortlänge 8 Zeichen, das Sessiontimeout 5 Minuten und für die
- Persistenz wird <classname>Zend_Session_Namespace</classname> verwendet (wobei der Namespace
- "Zend_Form_Captcha_<captcha ID>" verwendet wird).
- </para>
- <para>
- Zusätzlich zu den Methoden wie vom <classname>Zend_Captcha_Adapter</classname> Interface benötigt
- werden bietet <classname>Zend_Captcha_Word</classname> die folgenden Methoden an:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setWordLen($length)</code> und <code>getWordLen()</code> erlauben es die Länge des
- erzeugten "Wortes" in Zeichen zu spezifizieren, und den aktuellen Wert zu erhalten.
- </para></listitem>
- <listitem><para>
- <code>setTimeout($ttl)</code> und <code>getTimeout()</code> erlauben es die Lebenszeit des
- Sessiontokens zu spezifizieren, und den aktuellen Wert er erhalten. <code>$ttl</code> sollte
- in Sekunden spezifiziert sein.
- </para></listitem>
- <listitem><para>
- <code>setSessionClass($class)</code> und <code>getSessionClass()</code> erlauben es eine
- alternative <classname>Zend_Session_Namespace</classname> Implementation zu spezifizieren die
- verwendet werden soll um das CAPTCHA Token persistent zu machen und den aktuellen Wert
- zu bekommen.
- </para></listitem>
- <listitem><para>
- <code>getId()</code> erlaubt es den aktuellen Tokenidentifikator zu erhalten.
- </para></listitem>
- <listitem><para>
- <code>getWord()</code> erlaubt es das erzeugte Wort das mit dem CAPTCHA verwendet wird
- zu erhalten. Es wird das Wort erzeugen wenn es bis dahin noch nicht erstellt wurde.
- </para></listitem>
- <listitem><para>
- <code>setSession(Zend_Session_Namespace $session)</code> erlaubt es ein Sessionobjekt zu
- spezifizieren das für die Persistenz des CAPTCHA Tokens verwendet wird. <code>getSession()</code>
- erlaubt es das aktuelle Sessionobjekt zu erhalten.
- </para></listitem>
- </itemizedlist>
- <para>
- Alle Wort CAPTCHAs erlauben es ein Array von Optionen an den Konstruktor zu übergeben, oder
- alternativ dieses an <code>setOptions()</code> zu übergeben. Man kan auch ein <classname>Zend_Config</classname>
- Objekt an <code>setConfig()</code> zu übergeben. Standardmäßig können die <code>wordLen</code>,
- <code>timeout</code>, und <code>sessionClass</code> Schlüssel alle verwendet werden. Jede
- konkrete Implementation kann zusätzliche Schlüssel definieren oder die Optionen auf einem
- anderen Weg verwenden.
- </para>
- <note>
- <para>
- <classname>Zend_Captcha_Word</classname> ist eine abstrakte Klasse und kann nicht direkt
- instanziiert werden.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.captcha.adapters.dumb">
- <title>Zend_Captcha_Dumb</title>
- <para>
- Der <classname>Zend_Captcha_Dumb</classname> Adapter ist fast selbsterklärend. Er bietet einen
- zufälligen String der in umgekehrter Reihenfolge eingegeben werden muß um validiert
- zu werden. Als solches ist es keine gute CAPTCHA Lösung, und sollte nur für Testzwecke
- verwendet werden. Er erweitert <classname>Zend_Captcha_Word</classname>.
- </para>
- </sect2>
- <sect2 id="zend.captcha.adapters.figlet">
- <title>Zend_Captcha_Figlet</title>
- <para>
- Der <classname>Zend_Captcha_Figlet</classname> Adapter verwendet
- <link linkend="zend.text.figlet"><classname>Zend_Text_Figlet</classname></link> um dem
- Benutzer ein Figlet zu präsentieren.
- </para>
- <para>
- Optionen die an den Konstruktor übergeben werden, werden auch an das
- <link linkend="zend.text.figlet">Zend_Text_Figlet</link> Objekt übergeben. Schaue in die
- <link linkend="zend.text.figlet">Zend_Text_Figlet</link> Dokumentation für Details darüber
- welche Konfigurationsoptionen vorhanden sind.
- </para>
- </sect2>
- <sect2 id="zend.captcha.adapters.image">
- <title>Zend_Captcha_Image</title>
- <para>
- Der Zend_Captcha_Image Adapter nimmt das erzeugte Wort und stellt es als Bild dar, führt
- diverse Verzerrungs-Permutationen durch und mach es so schwierig es automatisch zu
- entschlüsseln. Er benötigt die <ulink url="http://php.net/gd">GD Erweiterung</ulink>
- kompiliert mit TrueType oder Freetype Unterstützung. Aktuell kann der Zend_Captcha_Image
- Adapter nur PNG Bilder erzeugen.
- </para>
- <para>
- <classname>Zend_Captcha_Image</classname> erweitert <classname>Zend_Captcha_Word</classname>, und bietet zusätzlich
- die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setExpiration($expiration)</code> und <code>getExpiration()</code> erlauben es eine
- maximale Lebenszeit zu definieren die das CAPTCHA Bild auf dem Dateisystem bleibt. Das ist
- typischerweise längerer als die Session Lifetime. Die Garbage Collection läuft periodisch
- jedes Mal wenn das CAPTCHA Objekt enthalten ist, und löscht die Bilder die abgelaufen sind.
- Der Wert der Löschung sollte in Sekunden angegeben werden.
- </para></listitem>
- <listitem><para>
- <code>setGcFreq($gcFreq)</code> und <code>getGcFreg()</code> erlauben es zu spezifizieren wie
- oft die Garbage Collection laufen soll. Die Garbage Collection wird alle
- <code>1/$gcFreq</code> Aufrufe ausgeführt. Standard ist 100.
- </para></listitem>
- <listitem><para>
- <code>setFont($font)</code> und <code>getFont()</code> erlauben es die Schrift zu spezifizieren
- die man verwenden will. <code>$font</code> sollte ein voll qualifizierter Pfad zu der
- Schriftart-Datei sein. Dieser Wert wird benötigt; das CAPTCHA wird wärend der Erzeugung
- eine Ausnahme werfen wenn die Schriftdatei nicht spezifiziert wurde.
- </para></listitem>
- <listitem><para>
- <code>setFontSize($fsize)</code> und <code>getFontSize()</code> erlauben es die Schriftgröße
- in Pixel zu spezifizieren die verwendet wird wenn das CAPTCHA erzeugt wird. Der
- Standardwert ist 24px.
- </para></listitem>
- <listitem><para>
- <code>setHeight($height)</code> und <code>getHeight()</code> erlauben es die Höhe in Pixel zu
- spezifizieren die das erzeugte CAPTCHA Bild haben soll. Der Standardwert ist 50px.
- </para></listitem>
- <listitem><para>
- <code>setWidth($width)</code> und <code>getWidth()</code> erlauben es die Breite in Pixel
- zu spezifizieren die das erzeugte Captcha Bild haben soll. Der Standardwert ist 200px.
- </para></listitem>
- <listitem><para>
- <code>setImgDir($imgDir)</code> und <code>getImgDir()</code> erlauben es das Verzeichnis für
- das Speicher der CAPTCHA Bilder zu spezifizieren. Der Standardwert ist
- "./images/captcha/", was relativ zum Bootstrapskript zu sehen ist.
- </para></listitem>
- <listitem><para>
- <code>setImgUrl($imgUrl)</code> und <code>getImgUrl()</code> erlauben es den Relativen Pfad
- zum CAPTCHA Bild für die Verwendung im HTML Markup zu spezifizieren. Der Standardwert ist
- "/images/captcha/".
- </para></listitem>
- <listitem><para>
- <code>setSuffix($suffix)</code> und <code>getSuffix()</code> erlauben es die Endung des
- Dateinamens für das CAPTCHA Bild zu spezifizieren. Der Standardwert ist ".png".
- Beachte: Das Ändern dieses Wertes wird den Typ des erzeugten Bildes nicht ändern.
- </para></listitem>
- </itemizedlist>
- <para>
- Alle der obigen Optionen können an den Konstruktor übergeben werden indem einfach
- der Präfix der 'set' Methode entfernt wird und der Anfangsbuchstabe kleingeschrieben wird:
- "suffix", "height", "imgUrl", usw.
- </para>
- </sect2>
- <sect2 id="zend.captcha.adapters.recaptcha">
- <title>Zend_Captcha_ReCaptcha</title>
- <para>
- Der <classname>Zend_Captcha_ReCaptcha</classname> Adapter verwendet
- <link linkend="zend.service.recaptcha">Zend_Service_ReCaptcha</link> um CAPTCHAs zu erzeugen
- und zu prüfen. Es bietet die folgenden Methoden an:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>setPrivKey($key)</code> und <code>getPrivKey()</code> erlauben es den privaten Schlüssel
- zu spezifizieren der für den ReCaptcha Service verwendet werden soll. Er muß wärend der
- Erstellung spezifiziert werden, auch wenn er jederzeit überschrieben werden kann.
- </para></listitem>
- <listitem><para>
- <code>setPubKey($key)</code> und <code>getPubKey()</code> erlauben es den öffentlichen
- Schlüssel zu spezifizieren der mit dem ReCaptcha Service verwendet werden soll. Er muß wärend
- der Erstellung spezifiziert werden, auch wenn er jederzeit überschrieben werden kann.
- </para></listitem>
- <listitem><para>
- <code>setService(Zend_Service_ReCaptcha $service)</code> und <code>getService()</code>
- erlauben es das ReCaptcha Serviceobjekt zu setzen und erhalten.
- </para></listitem>
- </itemizedlist>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|