Komponent Zend_Service_ReCaptcha zapewnia klienta dla
usługi reCAPTCHA Web Service.
Cytując serwis internetowy reCAPTCHA, "reCAPTCHA jest darmowym
serwisem CAPTCHA który pomaga skanować książki."
Każdy element reCAPTCHA wymaga, aby użytkownik wpisał dwa słowa:
pierwsze które jest tradycyjnym captcha, oraz drugie które jest
słowem zeskanowanym z jakiegoś tekstu, którego oprogramowanie do
optycznego rozpoznawania tekstu (OCR) nie mogło zidentyfikować.
Założeniem jest, że jeśli użytkownik poprawnie wpisze pierwsze słowo,
to także i drugie wpisze poprawnie, co będzie mogło być wykorzystane
to ulepszenia oprogramowania OCR używanego do skanowania książek.
Aby używać serwisu reCAPTCHA, będziesz potrzebował założyć konto i zarejestrować w serwisie jedną lub więcej domen w celu wygenerowania publicznego oraz prywatnego klucza.
Utwórz obiekt klasy Zend_Service_ReCaptcha, przekazując
mu twoje klucze: publiczny oraz prywatny:
$recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);
Aby wyświetlić element reCAPTCHA, po prostu wywołaj metodę
getHTML():
echo $recaptcha->getHTML();
Gdy formularz zostanie wysłany, powinieneś otrzymać dwa pola,
'recaptcha_challenge_field' oraz 'recaptcha_response_field'.
Przekaż je do metody verify() obiektu ReCaptcha:
$result = $recaptcha->verify(
$_POST['recaptcha_challenge_field'],
$_POST['recaptcha_response_field']
);
Gdy posiadasz wynik, sprawdź czy jest pozytywny. Wynik działania
metody jest obiektem klasy Zend_Service_ReCaptcha_Response
i zapewnia on metodę isValid().
if (!$result->isValid()) {
// Failed validation
}
Jeszcze prostszy w użyciu jest sterownik ReCaptcha
dla klasy Zend_Captcha lub użycie tego sterownika w
elemencie
formularza Captcha. W każdym z tych przypadków
wyświetlanie oraz weryfikacja elementu reCAPTCHA jest zautomatyzowana.