Jak do pola które jest wymagane wpiszę polską literkę, to zend wyrzuca komunikat błędu "Value is required and can't be empty", a tego co napisałem nawet nie zapamiętuje.
Metodą prób i błędów doszedłem do wniosku, że winowajcą jest Zend_Filter, zamienia wszystko co ma polskie znaki na nic.
private function getFormularzKontaktowy() { $form = new Zend_Form(); $form->setAction("start"); $form->setMethod("post"); $form->setName("e-mail"); $pytanie = new Zend_Form_Element_Textarea('pytanie'); $pytanie->setLabel("Twoje pytanie:") ->setAttrib('rows', 6) ->setAttrib('cols', 20) ->setRequired(true) ->addFilter(new Zend_Filter_HtmlEntities()) ->addFilter(new Zend_Filter_StringTrim()) ->addFilter(new Zend_Filter_StripTags()) ->addValidator(new Zend_Validate_NotEmpty()); $telefon = new Zend_Form_Element_Text('telefon'); $telefon->setLabel("Twoj telefon:*") ->setAllowEmpty(true) ->addFilter(new Zend_Filter_HtmlEntities()) ->addFilter(new Zend_Filter_StringTrim()) ->addFilter(new Zend_Filter_StripTags()); $mail = new Zend_Form_Element_Text('mail'); $mail->setLabel("Twoj e-mail:") ->setRequired(true) ->addFilter(new Zend_Filter_StringTrim()) ->addFilter(new Zend_Filter_StripTags()) ->addValidator(new Zend_Validate_EmailAddress()) ->addValidator(new Zend_Validate_NotEmpty()); $wyslij = new Zend_Form_Element_Submit("wyslij"); $wyslij->setLabel("Wyslij"); $form->addElement($pytanie); $form->addElement($telefon); $form->addElement($mail); $form->addElement($wyslij); return $form; }
tak wygląda formularz
$form = $this->getFormularzKontaktowy(); if($_POST){ if($form->isValid($_POST)){ //tutaj wykonuję dalsze czynnosci } }
a tak weryfikacja poprawności.