Zend_Captcha-Operation.xml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <sect1 id="zend.captcha.operation">
  2. <title>פעולת אנטי-ספאם</title>
  3. <para>
  4. כל האובייקטים המוחשיים של CAPTCHA מיישמים את <code>Zend_Captcha_Adapter</code>, שנראה ככה:
  5. </para>
  6. <programlisting role="php"><![CDATA[
  7. interface Zend_Captcha_Adapter extends Zend_Validate_Interface
  8. {
  9. public function generate();
  10. public function render(Zend_View $view, $element = null);
  11. public function setName($name);
  12. public function getName();
  13. public function getDecorator();
  14. // Additionally, to satisfy Zend_Validate_Interface:
  15. public function isValid($value);
  16. public function getMessages();
  17. public function getErrors();
  18. }
  19. ]]>
  20. </programlisting>
  21. <para>
  22. מתודות ה <code>setName()</code> ו <code>getName()</code> נועדו להגדיר ולהחזיר את המזהה היחודי של ה captcha.
  23. <code>getDecorator()</code> יכול לשמש בתור שימוש באובייקט עיצוב של Zend_Form, בין אם זה על ידי הזנת השם או החזרת האובייקט של העיצוב עצמו.
  24. כל העבודה החשובה נעשית אבל במתודת <code>generate()</code> ו <code>render()</code>.
  25. <code>generate()</code> נועד כדי ליצור את המפתח היחודי ל captcha. תהליך זה בדרך כלל ישמור את הזהה היחודי הזה ב session או בכל מקום אחר שתוכלו לאחר מכן להשוות מולו.
  26. <code>render()</code> נועד להציג את המידע אשר יאמת את הפרטים מול המזהה היחודי שנשמר קודם לכן, בין אם זה הצגת תמונה, טקסט רנדומלי או בעיה לוגית כלשהי.
  27. </para>
  28. <para>
  29. דוגמא לשימוש סטנדרטי נראה כך:
  30. </para>
  31. <programlisting role="php"><![CDATA[
  32. // Creating a Zend_View instance
  33. $view = new Zend_View();
  34. // Originating request:
  35. $captcha = new Zend_Captcha_Figlet(array(
  36. 'name' => 'foo',
  37. 'wordLen' => 6,
  38. 'timeout' => 300,
  39. ));
  40. $id = $captcha->generate();
  41. echo $captcha->render($view);
  42. // On subsequent request:
  43. // Assume captcha setup as before, and $value is the submitted value:
  44. if ($captcha->isValid($_POST['foo'], $_POST)) {
  45. // Validated!
  46. }
  47. ]]>
  48. </programlisting>
  49. </sect1>
  50. <!--
  51. vim:se ts=4 sw=4 et:
  52. -->