Zend_Form_Element_Captcha + Zend_Captcha_Image czyli generujemy obrazki captcha

19 lut 2009

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. #

Skomentuj wpis

Pole wymagane.

Pole wymagane. Adres nie będzie publikowany!

Jeśli posiadasz :)

 


Switch to our mobile site