Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF][ZendFramework]Edycja hasła - Zend_Validate_Abstract
tejek
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.11.2005

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


Witam,

Mam problem z edycja konta użytkownika a dokładnie z zmianą hasła z starego na nowe. W formularzu mam 3 pola: Stare hasło: [____] Nowe hasło: [____] Powtórz hasło: [____]. Mój problem jest taki że nie wiem jak mam napisać class-e validatora. Największy problem to taki że nie mogę sprawdzić Doctriną czy wogole istnieje takie hasło w bazie danych bo może ktoś ma takie same, więc musze pobrać id użytkownika i wyszukać go w bazie a następnie pobrać dotychczasowe hasło i porównać jes z hasłem wpisanym w polu formularz Stare hasło. Wyszukanie w bazie to nie problem ale pobranie id użytkownika.

Oto co ma razie udało mi się napisać:
FORMS
  1. class oldpass_available extends Zend_Validate_Abstract
  2. {
  3. protected $_messageTemplates = array
  4. (
  5. 'INVALID' => 'Błędne aktualne hasło.'
  6. );
  7. public function isValid($value)
  8. {
  9. $pass = md5(sha1(Main_Other::pass($value)));
  10.  
  11. $q = Doctrine_Query::create()
  12. ->select('u.user_id')
  13. ->form('MOdel_Users u')
  14. ->where('u.password = ?', $pass)
  15. >limit(1)
  16. ->execute()
  17. ->count();
  18. }
  19.  
  20. }

  1. $this->addElement('password','oldpass',array
  2. (
  3. 'label' => 'Stare hasło',
  4. 'required' => 1,
  5. 'validators' => array
  6. (
  7. //Validator: długość 6-50 znaków
  8. array('StringLength', false, array(6, 50, 'messages' => array
  9. (
  10. 'stringLengthTooShort' => 'Hasło powinno mieć więcej niż %min% znaków',
  11. 'stringLengthTooLong' => 'Hasło powinno mieć mniej niż %max% znaków'
  12. ))),
  13. array('validator'=>new oldpass_available())
  14. //TODO: AJAX sprawdzenie z pass_verify gdy niepuste
  15. )
  16. ));

  1. class Default_Form_Auth_Register extends Zend_Form {
  2. public function init() {
  3. $oldpass = new Zend_Form_Element_Password('oldpass');
  4. $oldpass->setLabel('Stare hasło')
  5. ->addFilter(new Zend_Filter_StringTrim())
  6. ->addValidator(new Zend_Validate_StringLength(6, 50));
  7. //->addValidator(new Main_Validate_Password());
  8. $this->addElement($oldpass);
  9. }
  10.  
  11. }


Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 25.08.2025 - 03:53