Zend_Service_ReCaptcha

Wprowadzenie

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.

Najprostsze użycie

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.