Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Formularz rejestracyjny
sweter
post 3.08.2010, 12:25:52
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam,
chciałbym wiedzieć jak "kazać" formularzowi sprawdzić, czy dwa pola mają taką samą zawartość (np. pola "Hasło" i "Powtórz hasło").
Kod odpowiedzialny za walidiację zawsze mam na końcu pliku z formularzem, np.:
  1.  
  2. $haslo->getValidator('StringLength')->setMessages(array(
  3. Zend_Validate_StringLength::TOO_SHORT => 'Hasło musi być dłuższe niż 6 znaków.'
  4. ));

Tak więc można to zrobić za pomocą jakichś metod Zend'a, czy trzeba kombinować?
Z góry dziękuję za odpowiedź smile.gif


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
legorek
post 3.08.2010, 13:56:36
Post #2





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Zend_Validate_Identical smile.gif


--------------------
Go to the top of the page
+Quote Post
batman
post 3.08.2010, 15:34:48
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(legorek @ 3.08.2010, 14:56:36 ) *
Zend_Validate_Identical smile.gif

Tym walidatorem nie sprawdzisz, czy podane hasła są identyczne. Musisz napisać własny walidator. Przykład i gotowy kod znajdziesz tutaj - http://framework.zend.com/manual/en/zend.f...ents.validators.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
legorek
post 4.08.2010, 05:57:32
Post #4





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


@Batman, oczywiście można mało tego jest co najmniej 3 sposoby żeby to zrobić: można pisać własny validator, można nadpisać metodę isValid formularza lub tak jak poniżej (18 linijka):

  1. class Application_Form_Password extends Zend_Form
  2. {
  3.  
  4. public function init()
  5. {
  6. $this->addElement('password', 'password', array(
  7. 'label' => 'password',
  8. 'required' => true,
  9. 'filters' => array('StringTrim'),
  10. 'validators' => array(array('StringLength', false, array(8, 255)))
  11. ));
  12. $this->addElement('password', 'password_repeat', array(
  13. 'label' => 'password_repeat',
  14. 'required' => true,
  15. 'filters' => array('StringTrim'),
  16. 'validators' => array(
  17. array('StringLength', false, array(8, 255)),
  18. array('Identical', false, Zend_Controller_Front::getInstance()->getRequest()->getParam('password')),
  19. )
  20. ));
  21. $this->addElement('submit', 'submit', array(
  22. 'ignore' => true,
  23. 'label' => 'ustaw_haslo',
  24. ));
  25. }
  26. }


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 03:41