Zend_Captcha-Operation.xml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.captcha.operation">
  5. <title>Opération Captcha</title>
  6. <para>
  7. Tous les adaptateurs <acronym>CAPTCHA</acronym> implémentent
  8. <classname>Zend_Captcha_Adapter</classname>, qui ressemble à ceci&#160;:
  9. </para>
  10. <programlisting language="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. // De plus, pour satisfaire Zend_Validate_Interface :
  19. public function isValid($value);
  20. public function getMessages();
  21. public function getErrors();
  22. }
  23. ]]></programlisting>
  24. <para>
  25. Le mutateur et l'accesseur "name" sont utilisés pour spécifier et récupérer
  26. l'identifiant du <acronym>CAPTCHA</acronym>. <methodname>getDecorator()</methodname> peut
  27. être utilisé pour spécifier un
  28. décorateur <classname>Zend_Form</classname> soit par son nom ou en retournant un objet
  29. décorateur. Les vraies clés sont utilisées sauf pour <methodname>generate()</methodname> et
  30. <methodname>render()</methodname>. <methodname>generate()</methodname> est utilisé pour
  31. créer l'élément <acronym>CAPTCHA</acronym>.
  32. Ce processus typiquement stockera l'élément en session ainsi il pourra être utilisé pour
  33. comparaison dans les requêtes suivantes. <methodname>render()</methodname> est utilisé
  34. pour effectuer le rendu de l'information que représente le <acronym>CAPTCHA</acronym> -
  35. en image, en texte Figlet, en problème logique, ou tout autre type de
  36. <acronym>CAPTCHA</acronym>.
  37. </para>
  38. <para>Un cas d'utilisation typique pourrait ressembler à ceci&#160;:</para>
  39. <programlisting language="php"><![CDATA[
  40. // Créer une instance de Zend_View
  41. $view = new Zend_View();
  42. // Requête original :
  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. // Lors de la requête suivante :
  51. // suppose que $captcha a été paramètré avant,
  52. // et que $value est la valeur soumise :
  53. if ($captcha->isValid($_POST['foo'], $_POST)) {
  54. // Validated!
  55. }
  56. ]]></programlisting>
  57. </sect1>