Użycie komponentu Zend_Form_Element_Captcha do generowania obrazków z kodem nie jest takie proste jak przedstawiono w dokumentacji frameworka.
Okazuje się, że najpierw musimy stworzyć obiekt Zend_Captcha_Image, który następnie podajemy jako parametr konstruktora Zend_Form_Element_Captcha.
// tworzymy obiekt Zend_Captcha_Image
$captchaImage = new Zend_Captcha_Image('captchaImg');
$captchaImage->setFont('...') // pełna ścieżka do czcionki, jaka ma zostać użyta
->setImgDir('...') // pełna ścieżka do katalogu gdzie ma zostać wygenerowany obrazek
->setWordlen(5) // ilość znaków w kodzie captcha
->setWidth(100) // szerokość obrazka
->setHeight(60) // wysokość obrazka
->generate();
// tworzymy właściwy element formularza
$captcha = new Zend_Form_Element_Captcha('captcha', array(
'captcha' => $captchaImage));
$captcha->setLabel('Przepisz kod z obrazka widoczny poniżej:');
W roli wyjaśnienia: Zend_Captcha_Image generuje obrazek (PNG – stąd wymagana jest włączona obsługa rozszerzenia GD w PHP) i zapisuje w katalogu podanym w metodzie setImgDir(). Domyślnie jest to katalog ./images/captcha. Zend_Form_Element_Captcha natomiast wstawia do formularza elementy input oraz img ze ścieżką do tegoż obrazka.





Komentarzy: 2
Artykuł napisany prawie 2 tygodnie wcześniej z przykładem zastosowania.
TI @ 23 lut 2009 11:20. #
Dzięki, właśnie tego szukałem.
Michał @ 01 mar 2009 11:03. #