- Code: Alles auswählen
- var $validate = array(
'username' => array(
'isUnique'=>array(
'rule' => 'isUnique',
'message' => 'This username has already been taken'
),
'notempty'=>array(
'rule'=>'notEmpty',
'message' => 'This field cannot be left blank'
),
'forbidden'=>array(
'rule'=>'forbiddenUsername',
'message'=>'This is a reserved username'
)
),
'password'=>array(
'minLength'=>array(
'rule'=>array('minLength', 6),
'message' => 'Password must be at least 6 characters long.'
)
),
'email' => array(
'rule' => array('email', true),
'message' => 'Please supply a valid email address.'
)
);
Sofern der Benutzer bei der Registrierung alles richtig macht, funktioniert dies auch.
Probleme gibt es, falls die Validierung fehlschlägt, und der Benutzer seine Angaben korrigieren muss. (Siehe Bildschirmfoto: Benutzer hat überhaupt keine Angaben gemacht, nur "Register" geklickt.)
Da das Passwort vor der Validierung gehasht wird, ist dies sogar ein valides Passwort, denn es ist 40 Zeichen lang, obwohl der Benutzer gar kein Zeichen eingegeben hat. Zur Info noch $this->data:
- Code: Alles auswählen
Im View kann man behelfsweise die Rückgabe des gehashten Passworts mit value="" unterdrücken. Es hilft aber nicht wirklich weiter, da vor der Validierung dieses "nichts" wieder ein 40 Zeichen breites Wort ergibt.
Hat jemand dieses Problem schon mal gelöst?