Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  php:ZF:Zend_Form Custom Validatori lisamine märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 30.03.2008 12:34:34 php:ZF:Zend_Form Custom Validatori lisamine vasta tsitaadiga

Probleem järgmine, et vaja teha registreerimisel parooli kontroll, kas parool1 ja parool2 on ühesugused. Leidsin Zendi manuaalist ühe Password Confim Validatori, mille nimeks sai My_Validate_Password. Kõik töötab, kuid oleks vaja kuidagi loadida see validator. icon_rolleyes.gif

php:
  1.  
  2.                 $this->addElement('password', 'parool2', array(
  3.                         'label'   => 'Parool veelkord:',
  4.                         'validators'    => array(
  5.                                 array('Password', false, 'parool') //Siin on probleem
  6.                         ),
  7.                         'required'            => true
  8.                 ));
  9.  

_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
EvilOne
HV vaatleja
EvilOne

liitunud: 25.01.2004




sõnum 30.03.2008 12:54:26 vasta tsitaadiga

miks sa seda asja nii keeruliselt teed? sellejaoks on ju palju lihtsam võimalus - PHP-l endal on sisseehitatud stringi võrdlusfunktsioonid. Näiteks funktsioon strcmp(parool1, parool2). Põhimõte on ise lihtne, kui paroolid ei ole võrdsed siis väljastab funktsioon kas väärtused -1 või 1, kui aga on võrdsed, siis väärtuse 0.

lisainfot selle funktsiooni kohta saad siit http://ee2.php.net/manual/en/function.strcmp.php
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 30.03.2008 13:11:14 vasta tsitaadiga

EvilOne kirjutas:
miks sa seda asja nii keeruliselt teed? sellejaoks on ju palju lihtsam võimalus - PHP-l endal on sisseehitatud stringi võrdlusfunktsioonid. Näiteks funktsioon strcmp(parool1, parool2). Põhimõte on ise lihtne, kui paroolid ei ole võrdsed siis väljastab funktsioon kas väärtused -1 või 1, kui aga on võrdsed, siis väärtuse 0.

lisainfot selle funktsiooni kohta saad siit http://ee2.php.net/manual/en/function.strcmp.php
Noh kuidas võtta, kas ta siis nii keeruline on aga põhiline oleks, et edaspidi saaks kiiremini hakkama.

Parooli võrdleja kood ise selline.
php:
  1.  
  2. <?php
  3. class My_Validate_Password extends Zend_Validate_Abstract {
  4.        
  5.         const NOT_MATCH = 'notMatch';
  6.        
  7.         protected $_messageTemplates = array(
  8.                 self::NOT_MATCH => 'Passwords does not match!'
  9.         );
  10.        
  11.         public function isValid($value, $context = null) {
  12.                
  13.                 $value = (string)$value;
  14.                 $this->_setValue($value);
  15.                
  16.                 if (is_array($context)) {
  17.                         if (isset($context['password_confirm']) && ($value == $context['password_confirm'])) {
  18.                                 return true;
  19.                         }
  20.                 } elseif (is_string($context) && ($value == $context)) {
  21.                         return true;
  22.                 }
  23.                
  24.                 $this->_error(self::NOT_MATCH);
  25.                 return false;
  26.         }
  27. }
  28.  
  29. ?>
  30.  

_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
EvilOne
HV vaatleja
EvilOne

liitunud: 25.01.2004




sõnum 30.03.2008 13:36:39 vasta tsitaadiga

Pole muidugi mingi eriline PHP guru, aga tegin ise mingi lambist klassi. Vaata kas sobib.

Kood siis siin
<?php

class PasswordValidator {
   
   private $pass1, $pass2;
   
   public function __construct($pass1, $pass2) {
      $this->pass1 = $pass1;
      $this->pass2 = $pass2;
   }
   
   private function IsValid() {
      if(strcmp($this->pass1, $this->pass2) == 0) {
         return true;
      } else {
         return false;
      }
   }
   
   public function getIsValid() {
      return self::IsValid();
   }
}

// hiljem saad koodis seda klassi kasutada nii
$pv = new PasswordValidator("22wweezz", "22wweeyy");

if($pv->get_IsValid()) {
   echo "Paroolid klapivad";
} else {
   echo "Paroolid ei klapi";
}

?>
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
lehm2
Kreisi kasutaja


liitunud: 19.09.2004




sõnum 30.03.2008 21:45:31 vasta tsitaadiga

Leidsin lahenduse väga ootamatult, tekkis väike teisiti mõtlemis viis ja saigi tehtud
php:
  1.  
  2.                 $this->addElement('password', 'parool2', array(
  3.                         'label'   => 'Parool veelkord:',
  4.                         'validators'    => array(
  5.                                 array(new My_Validate_Password('parool')) //kasutame stringi asemel otses objekti loomist
  6.                         ),
  7.                         'required'            => true
  8.                 ));
  9.  

_________________
Piilu siia, progreja!
Vajad abi Node.JS-ga ?
Võta ühendust !
Kommentaarid: 15 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 13
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
hexmex
HV kasutaja

liitunud: 13.06.2006




sõnum 02.04.2008 10:14:29 vasta tsitaadiga

EvilOne kirjutas:
miks sa seda asja nii keeruliselt teed? sellejaoks on ju palju lihtsam võimalus - PHP-l endal on sisseehitatud stringi võrdlusfunktsioonid.

ot:

Ma ei saa jätta mainimata, et kuna teema pealkirjas on sees ZF (Zend Framework), siis vastates tasuks sellega arvestada. Soovitan sul soojalt tutvuda sellesama ZF'ga või üldse tutvust teha erinevate PHP raamistike kasutamise plusside ja miinustega. Lihtsad stringide võrdlused paroolide valideerimisel ei tule vähegi suuremas rakenduses kõne alla icon_wink.gif

_________________
Olgem sõbralikud!
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  php:ZF:Zend_Form Custom Validatori lisamine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.