Блог об it, программировании и интернет-маркетинге

Делюсь наблюдениями и личным опытом в области программирования и интернет-маркетинга

Каптча в 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();


SEO Community Ваау! News2.ru SMI2 Google Bookmarks I.ua Закладки Yandex Ruspace Web-zakladka Zakladok.net delicious БобрДобр.ru Memori.ru rucity.com МоёМесто.ru Mister Wong

Comments