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.