| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15783 -->
- <!-- 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>
- <methodname>setWordLen($length)</methodname> und
- <methodname>getWordLen()</methodname> erlauben es die Länge des erzeugten "Wortes"
- in Zeichen zu spezifizieren, und den aktuellen Wert zu erhalten.
- </para></listitem>
- <listitem><para>
- <methodname>setTimeout($ttl)</methodname> und <methodname>getTimeout()</methodname>
- erlauben es die Lebenszeit des Sessiontokens zu spezifizieren, und den aktuellen
- Wert er erhalten. <varname>$ttl</varname> sollte in Sekunden spezifiziert sein.
- </para></listitem>
- <listitem><para>
- <methodname>setSessionClass($class)</methodname> und
- <methodname>getSessionClass()</methodname> 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>
- <methodname>getId()</methodname> erlaubt es den aktuellen Tokenidentifikator zu
- erhalten.
- </para></listitem>
- <listitem><para>
- <methodname>getWord()</methodname> 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>
- <methodname>setSession(Zend_Session_Namespace $session)</methodname> erlaubt es ein
- Sessionobjekt zu spezifizieren das für die Persistenz des CAPTCHA Tokens verwendet
- wird. <methodname>getSession()</methodname> 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 <methodname>setOptions()</methodname> zu übergeben. Man kann
- auch ein <classname>Zend_Config</classname> Objekt an
- <methodname>setConfig()</methodname> zu übergeben. Standardmäßig können die
- <emphasis>wordLen</emphasis>, <emphasis>timeout</emphasis>, und
- <emphasis>sessionClass</emphasis> 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>
- <methodname>setExpiration($expiration)</methodname> und
- <methodname>getExpiration()</methodname> 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>
- <methodname>setGcFreq($gcFreq)</methodname> und
- <methodname>getGcFreg()</methodname> erlauben es zu Spezifizieren wie oft die
- Garbage Collection laufen soll. Die Garbage Collection wird alle
- <emphasis>1/$gcFreq</emphasis> Aufrufe ausgeführt. Standard ist 100.
- </para></listitem>
- <listitem><para>
- <methodname>setFont($font)</methodname> und <methodname>getFont()</methodname>
- erlauben es die Schrift zu Spezifizieren die man verwenden will.
- <varname>$font</varname> 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>
- <methodname>setFontSize($fsize)</methodname> und
- <methodname>getFontSize()</methodname> 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>
- <methodname>setHeight($height)</methodname> und
- <methodname>getHeight()</methodname> erlauben es die Höhe in Pixel zu Spezifizieren
- die das erzeugte CAPTCHA Bild haben soll. Der Standardwert ist 50px.
- </para></listitem>
- <listitem><para>
- <methodname>setWidth($width)</methodname> und <methodname>getWidth()</methodname>
- erlauben es die Breite in Pixel zu Spezifizieren die das erzeugte Captcha Bild
- haben soll. Der Standardwert ist 200px.
- </para></listitem>
- <listitem><para>
- <methodname>setImgDir($imgDir)</methodname> und
- <methodname>getImgDir()</methodname> 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>
- <methodname>setImgUrl($imgUrl)</methodname> und
- <methodname>getImgUrl()</methodname> 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>
- <methodname>setSuffix($suffix)</methodname> und
- <methodname>getSuffix()</methodname> 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>
- <methodname>setPrivKey($key)</methodname> und <methodname>getPrivKey()</methodname>
- 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>
- <methodname>setPubKey($key)</methodname> und <methodname>getPubKey()</methodname>
- 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>
- <methodname>setService(Zend_Service_ReCaptcha $service)</methodname> und
- <methodname>getService()</methodname> erlauben es das ReCaptcha Serviceobjekt zu
- setzen und erhalten.
- </para></listitem>
- </itemizedlist>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|