| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <sect1 id="zend.captcha.operation">
- <title>פעולת אנטי-ספאם</title>
- <para>
- כל האובייקטים המוחשיים של CAPTCHA מיישמים את <code>Zend_Captcha_Adapter</code>, שנראה ככה:
- </para>
- <programlisting role="php"><![CDATA[
- interface Zend_Captcha_Adapter extends Zend_Validate_Interface
- {
- public function generate();
- public function render(Zend_View $view, $element = null);
- public function setName($name);
- public function getName();
- public function getDecorator();
- // Additionally, to satisfy Zend_Validate_Interface:
- public function isValid($value);
- public function getMessages();
- public function getErrors();
- }
- ]]>
- </programlisting>
- <para>
- מתודות ה <code>setName()</code> ו <code>getName()</code> נועדו להגדיר ולהחזיר את המזהה היחודי של ה captcha.
- <code>getDecorator()</code> יכול לשמש בתור שימוש באובייקט עיצוב של Zend_Form, בין אם זה על ידי הזנת השם או החזרת האובייקט של העיצוב עצמו.
- כל העבודה החשובה נעשית אבל במתודת <code>generate()</code> ו <code>render()</code>.
- <code>generate()</code> נועד כדי ליצור את המפתח היחודי ל captcha. תהליך זה בדרך כלל ישמור את הזהה היחודי הזה ב session או בכל מקום אחר שתוכלו לאחר מכן להשוות מולו.
- <code>render()</code> נועד להציג את המידע אשר יאמת את הפרטים מול המזהה היחודי שנשמר קודם לכן, בין אם זה הצגת תמונה, טקסט רנדומלי או בעיה לוגית כלשהי.
- </para>
- <para>
- דוגמא לשימוש סטנדרטי נראה כך:
- </para>
- <programlisting role="php"><![CDATA[
- // Creating a Zend_View instance
- $view = new Zend_View();
- // Originating request:
- $captcha = new Zend_Captcha_Figlet(array(
- 'name' => 'foo',
- 'wordLen' => 6,
- 'timeout' => 300,
- ));
- $id = $captcha->generate();
- echo $captcha->render($view);
- // On subsequent request:
- // Assume captcha setup as before, and $value is the submitted value:
- if ($captcha->isValid($_POST['foo'], $_POST)) {
- // Validated!
- }
- ]]>
- </programlisting>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|