Programmer's Reference Guide
| Введение |
Работа с captcha
Все адаптеры CAPTCHA реализуют интерфейс Zend_Captcha_Adapter:
- 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();
- }
Сеттеры и геттеры имени используются для задания и получения идентификатора CAPTCHA. getDecorator() может использоваться для определения декоратора Zend_Form по имени (?) и возвращает текущий объект декоратора. Особенно интересны методы generate() и render(). generate() используется для генерирования токена CAPTCHA. По умолчанию токен хранится в сессии, так что можно использовать его между различными запросами одного клиента. render() генерирует данные, представляющие CAPTCHA -- картинка с искажённым текстом, figlet, логический вопрос или любая иная форма CAPTCHA.
Код для работы с CAPTCHA может выглядеть так:
- // Создаём объект Zend_View
- $view = new Zend_View();
- // Создаём captcha:
- 'name' => 'foo',
- 'wordLen' => 6,
- 'timeout' => 300,
- ));
- $id = $captcha->generate();
- echo "<form method=\"post\" action=\"\">";
- echo "</form>";
- // Проверка отправленной формы:
- // Данные captcha находятся с массиве $_POST['foo']
- // в этом массиве должны быть следующие пары ключ => значение:
- // id => идентификатор captcha, input => значение captcha
- if ($captcha->isValid($_POST['foo'], $_POST)) {
- // Validated!
- }
| Введение |
