Каптча в Zend Framework. Zend_Captcha и ReCaptсha Service
Posted on | February 13, 2011 | No Comments
На проекте в котором использую Zend Framework мне понадобилось написать генерацию-проверку каптчи и хотелось сделать это средствами фреймворка. Я полез читать маны, нашёл средство генерации каптч Zend_Captcha в котором опробовал Zend_Captcha_Word, Zend_Captcha_Dumb, Zend_Captcha_Figlet. Они меня не очень впечатлили.
Класс Zend_Captcha_Image я вообще решил не трогать :) Он конечно представляет собой мощное средство, но с ним надо повозиться, а мне больше нравится быстро интегрируемая, качественная и проверенная каптча. Поэтому я был очень рад увидеть упоминание о классе-адаптере Zend_Captcha_ReCaptcha реализующем ReCaptcha. Если быть более точным, то это Zend_Service_ReCaptcha предоставляет функционал вышеупомянутого сервиса.
Его то я использовал, получилось примерно следующее (генерация и проверка отправленных данных осуществляется на одной странице):
//подключаем класс-адаптер Zend_Loader::loadclass('Zend_Service_ReCaptcha'); //создаем объект, ключи получаем на recaptcha.com $recaptcha = new Zend_Service_ReCaptcha( $yourPublicKey, $yourPrivateKey ); if($this->_request->isPost()) { //проверяем введенные значения после отправки формы //поля генерируются функцией getHTML() $result = $recaptcha->verify( $_POST['recaptcha_challenge_field'], $_POST['recaptcha_response_field'] ); if ($result->isValid()) { //делаем запись в бд или ещё что-то //и уходим с этой страницы $this->_redirect('/'); } } //если ничего не отправляли или заполнено не правильно //выводим HTML код input полей для формы и саму каптчу echo $recaptcha->getHTML();
Comments
Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/dezhik.ru/wp-includes/class-wp-comment-query.php on line 399