1 <sect1 id="zend.captcha.operation">
2 <title>פעולת אנטי-ספאם</title>
5 כל האובייקטים המוחשיים של CAPTCHA מיישמים את <code>Zend_Captcha_Adapter</code>, שנראה ככה:
8 <programlisting role="php"><![CDATA[
9 interface Zend_Captcha_Adapter extends Zend_Validate_Interface
11 public function generate();
13 public function render(Zend_View $view, $element = null);
15 public function setName($name);
17 public function getName();
19 public function getDecorator();
21 // Additionally, to satisfy Zend_Validate_Interface:
22 public function isValid($value);
24 public function getMessages();
26 public function getErrors();
32 מתודות ה <code>setName()</code> ו <code>getName()</code> נועדו להגדיר ולהחזיר את המזהה היחודי של ה captcha.
33 <code>getDecorator()</code> יכול לשמש בתור שימוש באובייקט עיצוב של Zend_Form, בין אם זה על ידי הזנת השם או החזרת האובייקט של העיצוב עצמו.
34 כל העבודה החשובה נעשית אבל במתודת <code>generate()</code> ו <code>render()</code>.
35 <code>generate()</code> נועד כדי ליצור את המפתח היחודי ל captcha. תהליך זה בדרך כלל ישמור את הזהה היחודי הזה ב session או בכל מקום אחר שתוכלו לאחר מכן להשוות מולו.
36 <code>render()</code> נועד להציג את המידע אשר יאמת את הפרטים מול המזהה היחודי שנשמר קודם לכן, בין אם זה הצגת תמונה, טקסט רנדומלי או בעיה לוגית כלשהי.
40 דוגמא לשימוש סטנדרטי נראה כך:
43 <programlisting role="php"><![CDATA[
44 // Creating a Zend_View instance
45 $view = new Zend_View();
47 // Originating request:
48 $captcha = new Zend_Captcha_Figlet(array(
53 $id = $captcha->generate();
54 echo $captcha->render($view);
56 // On subsequent request:
57 // Assume captcha setup as before, and $value is the submitted value:
58 if ($captcha->isValid($_POST['foo'], $_POST)) {