| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- <?xml version="1.0" encoding="utf-8"?>
- <!-- EN-Revision: 24604 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.captcha.adapters">
- <title>Adaptateurs CAPTCHA</title>
- <para>Les adaptateurs suivants sont fournis dans Zend Framework par défaut.</para>
- <sect2 id="zend.captcha.adapters.word">
- <title>Zend_Captcha_Word</title>
- <para>
- <classname>Zend_Captcha_Word</classname> est un adaptateur abstrait qui sert de classe
- de base pour la plupart des autres adaptateurs <acronym>CAPTCHA</acronym>. Il fournit
- des mutateurs permettant de spécifier la taille du mot le <acronym>TTL</acronym> de
- session, l'objet d'espace de noms de session à utiliser, et la classe d'espace de noms
- de session à utiliser pour la persistance si vous ne souhaitez pas utiliser
- <classname>Zend_Session_Namespace</classname> pour la persistance.
- <classname>Zend_Captcha_Word</classname> encapsule toute la logique de validation.
- </para>
- <para>
- Par défaut la taille du mot est de 8 caractères, le timeout de session est de 5
- minutes et l'objet d'espace de nom de session utilisé est
- <classname>Zend_Session_Namespace</classname> (avec l'espace de nom
- ("<classname>Zend_Form_Captcha_<captcha ID></classname>").
- </para>
- <para>
- En plus des méthodes standards fournies par
- <classname>Zend_Captcha_Adapter</classname>, <classname>Zend_Captcha_Word</classname>
- propose les méthodes suivantes :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>setWordLen($length)</methodname> et
- <methodname>getWordLen()</methodname> vous permettent de piloter la taille du
- "mot" généré, en caractères.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setTimeout($ttl)</methodname> et
- <methodname>getTimeout()</methodname> vous donnent la main sur le temps-de-vie
- du jeton de session. <varname>$ttl</varname> est exprimé en secondes.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setUseNumbers($numbers)</methodname> et
- <methodname>getUseNumbers()</methodname> vous permettent de spécifier les
- chiffres seront considérés comme des caractères possibles pour la partie
- aléatoire ou si seules les lettres seront utilisées.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setSessionClass($class)</methodname> et
- <methodname>getSessionClass()</methodname>
- vous permettent de piloter la classe de session, si vous désirez utiliser une
- alternative à <classname>Zend_Session_Namespace</classname>, ceci dans le but
- de faire persister le jeton <acronym>CAPTCHA</acronym> en session.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getId()</methodname> retourne l'identifiant du jeton actuel.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getWord()</methodname> retourne le mot généré utilisé avec le
- <acronym>CAPTCHA</acronym>. Il sera généré pour vous si aucun n'existe déjà.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setSession(Zend_Session_Namespace $session)</methodname> permet
- d'injecter un objet de session qui sera utilisé pour faire persister le jeton
- de <acronym>CAPTCHA</acronym>. <methodname>getSession()</methodname> retourne
- l'objet de session actuellement utilisé.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Tous les <acronym>CAPTCHA</acronym> Word vous autorisent à passer un tableau d'options
- au constructeur, ou à <methodname>setOptions()</methodname> (un objet
- <classname>Zend_Config</classname> peut être utilisé avec
- <methodname>setConfig()</methodname>).
- Par défaut, les clés <emphasis>timeout</emphasis> <emphasis>wordLen</emphasis> et
- <emphasis>sessionClass</emphasis> seront utilisées.
- </para>
- <note>
- <para>
- <classname>Zend_Captcha_Word</classname> est une classe abstraite et ne peut être
- utilisée directement.
- </para>
- </note>
- </sect2>
- <sect2 id="zend.captcha.adapters.dumb">
- <title>Zend_Captcha_Dumb</title>
- <para>
- L'adaptateur <classname>Zend_Captch_Dumb</classname> propose une chaîne aléatoire qui
- doit être ressaisie, mais inversée. Ce n'est pas une solution
- <acronym>CAPTCHA</acronym> idéale (un robot peut la détourner), il devrait être utilisé
- comme solution de remplacement extrême, ou pour les tests. Il étend
- <classname>Zend_Captcha_Word</classname>.
- </para>
- </sect2>
- <sect2 id="zend.captcha.adapters.figlet">
- <title>Zend_Captcha_Figlet</title>
- <para>
- L'adaptateur <classname>Zend_Captcha_Figlet</classname> utilise
- <link linkend="zend.text.figlet"><classname>Zend_Text_Figlet</classname></link> pour
- présenter un captcha. Seuls les caractères alphabétiques sont utilisables.
- </para>
- <para>
- Les options passées au constructeur le seront pour l'objet
- <link linkend="zend.text.figlet"><classname>Zend_Text_Figlet</classname></link> que
- l'adaptateur va utiliser. Voyez la documentation de <link
- linkend="zend.text.figlet"><classname>Zend_Text_Figlet</classname></link>pour plus
- d'informations.
- </para>
- </sect2>
- <sect2 id="zend.captcha.adapters.image">
- <title>Zend_Captcha_Image</title>
- <para>
- L'adaptateur <classname>Zend_Captcha_Image</classname> prend le mot généré et le
- transforme en image difficile à analyser pour un programme informatique (robot). Pour
- cela, il nécessite l'<ulink url="http://php.net/gd">extension GD</ulink>,
- compilée avec le support TrueType et Freetype. Actuellement, l'adaptateur
- <classname>Zend_Captcha_Image</classname> ne génère que des images
- <acronym>PNG</acronym>.
- </para>
- <para>
- <classname>Zend_Captcha_Image</classname> étend
- <classname>Zend_Captcha_Word</classname>, et propose les méthodes additionnelles
- suivantes :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>setExpiration($expiration)</methodname> et
- <methodname>getExpiration()</methodname> vous autorisent à manipuler le temps
- maximum que l'image <acronym>CAPTCHA</acronym> doit rester
- sur le disque. En général, il s'agit d'un temps supérieur à celui de la
- session. Un ramasse-miettes passe régulièrement à chaque instanciation de
- l'objet <acronym>CAPTCHA</acronym> Image : il détruit les images arrivées à
- expiration. La période d'expiration doit être exprimée en secondes.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setGcFreq($gcFreq)</methodname> et
- <methodname>getGcFreg()</methodname> vous
- permettent de manipuler la fréquence de collecte du ramasse-miettes des images.
- Le ramasse-miettes passera à une fréquence de <command>1/$gcFreq</command>.
- Par défaut 1 / 100, soit toutes les 100 requêtes.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setFont($font)</methodname> et <methodname>getFont()</methodname>
- vous donnent le moyen de manipuler la police que vous souhaitez utiliser.
- <varname>$font</varname> doit indiquer le chemin complet vers la police à
- utiliser pour générer le <acronym>CAPTCHA</acronym>.
- Une exception sera levée si vous ne spécifiez pas ce paramètre.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setFontSize($fsize)</methodname> et
- <methodname>getFontSize()</methodname> servent pour spécifier et récupérer la
- taille de la police à utiliser (en pixels) pour générer l
- <acronym>CAPTCHA</acronym>. Par défaut : 24px.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setHeight($height)</methodname> et
- <methodname>getHeight()</methodname> servent pour spécifier et récupérer la
- hauteur de la police à utiliser (en pixels) pour générer le
- <acronym>CAPTCHA</acronym>. Par défaut : 50px.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setWidth($width)</methodname> et
- <methodname>getWidth()</methodname> servent pour spécifier et récupérer la
- largeur de la police à utiliser (en pixels) pour générer le
- <acronym>CAPTCHA</acronym>. Par défaut : 200px.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setImgDir($imgDir)</methodname> et
- <methodname>getImgDir()</methodname> vous permettent de manipuler le dossier
- dans lequel les images <acronym>CAPTCHA</acronym> générées
- seront stockées. Par défaut, il s'agit de
- "<filename>./images/captcha/</filename>", qui devrait être
- pris relativement au fichier de bootstrap du site.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setImgUrl($imgUrl)</methodname> et
- <methodname>getImgUrl()</methodname> vous donnent le moyen de manipuler le
- chemin relatif à utiliser pour la balise <acronym>HTML</acronym> servant
- à afficher l'image du <acronym>CAPTCHA</acronym>. Par défaut, il s'agit de
- "<filename>/images/captcha/</filename>".
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setSuffix($suffix)</methodname> et
- <methodname>getSuffix()</methodname> vous donnent
- la main sur le suffixe à utiliser pour le nom du fichier de l'image générée par
- le <acronym>CAPTCHA</acronym>. Il s'agit par défaut de
- "<filename>.png</filename>". Note : changer ceci ne changera pas
- le type de l'image générée.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setDotNoiseLevel($level)</methodname> et
- <methodname>getDotNoiseLevel()</methodname>, avec
- <methodname>setLineNoiseLevel($level)</methodname> et
- <methodname>getLineNoiseLevel()</methodname>, vous permettent de contrôler le
- niveau de bruit sous forme de points et de lignes que l'image va contenir.
- Chaque unité de <varname>$level</varname> produit un point ou une ligne
- aléatoire. Les valeurs par défaut sont 100 points et 5 lignes. Le bruit est
- ajouté deux fois : avant et après la transformation de l'image.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Toutes les options ci-dessus peuvent aussi être passées en constructeur.
- Supprimer la partie "set" de leur méthodes, et passez leur première lettre en minuscule
- pour avoir les clés du tableau d'options que le constructeur utilise. ("suffix",
- "height", "imgUrl", etc...).
- </para>
- </sect2>
- <sect2 id="zend.captcha.adapters.recaptcha">
- <title>Zend_Captcha_ReCaptcha</title>
- <para>
- L'adaptateur <classname>Zend_Captcha_ReCaptcha</classname> utilise
- <link linkend="zend.service.recaptcha">Zend_Service_ReCaptcha</link> pour générer des
- <acronym>CAPTCHA</acronym>. Les méthodes suivantes lui sont propres :
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>setPrivKey($key)</methodname> et
- <methodname>getPrivKey()</methodname> vous
- permettent de gérer la clé privée utilisée avec le service ReCaptcha. Cette clé
- doit être spécifiée en constructeur, mais peut être ensuite modifiée.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setPubKey($key)</methodname> et
- <methodname>getPubKey()</methodname> vous permettent
- de gérer la clé publique utilisée avec le service ReCaptcha. Cette clé doit
- être spécifiée en constructeur, mais peut être ensuite modifiée.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>setService(Zend_Service_ReCaptcha $service)</methodname> et
- <methodname>getService()</methodname> vous permettent d'interagir directement
- avec l'objet service ReCaptcha utilisé par l'adaptateur.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>isValid($value, $context = null)</methodname> valide l'entrée
- de l'utilisateur avec le service ReCaptcha. <varname>$value</varname> est un
- tableau avec les clés suivantes :
- <itemizedlist>
- <listitem>
- <para>
- <varname>recaptcha_challenge_field</varname> - valeur du champs
- de challenge de l'élément ReCaptcha (caché)
- </para>
- </listitem>
- <listitem>
- <para>
- <varname>recaptcha_response_field</varname> - valeur du champs
- correspondant à l'entré utilisateur de l'élément ReCaptcha
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
|