Empfehlungen: Erweiterte Suche

Validierung über mehrere Eingabefelder

Datenbankobjekte strukturieren und validieren

Validierung über mehrere Eingabefelder

Beitragvon woki » Di 8. Mär 2011, 22:23

Hallo Forum,

als cake-Neuling stolpere ich noch über so etliches. Ich hänge grad fest, weil ich bei der User-Registrierung Passwort-Eingabe und Passwortwiederholung auf Gleichheit überprüfen möchte. Wie kann ich zwei Eingabefelder mit Validate vergleichen?

Mein Ansatz war, ein virtuelles Field für die Passwortwiederholung anzulgen, aber wie kann ich die Gleichheit abprüfen, so daß die Fehlermeldung direkt beim Eingabefeld erscheint?

Danke shcon mal!
woki
Zuletzt geändert von Mathias am Mi 9. Mär 2011, 02:32, insgesamt 1-mal geändert.
Grund: ein kleines e bei mehrere angefügt
woki
 
Beiträge: 5
Registriert: Di 8. Mär 2011, 22:18

Re: Validierung über mehrer Eingabefelder

Beitragvon lukasstrassel » Di 8. Mär 2011, 23:38

es gibt soweit ich weiß leider keine vordefinierte gleichheitsüberprüfung, aber über einen umweg geht es

angeommen deine validation sieht so aus:
Code: Alles auswählen

var $validate = array(
       (..andere validations
        ),
        'password' => array(
            'pwd_notmatch' => array(
                'rule' => 'matchPasswords',
                'message' => 'Die Passwörter stimmen nicht überein.'
            )
        )
    );
 

dann kannst du bei rule eine eigene funktion angeben (habe sie jetzt "matchPasswords" genannt)
und die könnte dann so aussehen
Code: Alles auswählen

function matchPasswords($data){
        if($data['password']==$this->data['User']['password_confirmation']){
            return true;
        }
        $this->invalidate('password_confirmation','Die von ihnen eingegebenen Passwörter stimmen nicht überein.');
        return FALSE;
    }
 

wie du siehst, kann du per invalidate('target','message'); "die Fehlermeldung direkt beim Eingabefeld erschein"-en lassen

ich hab jetzt keine zeit mehr, aber wenn du das hast stehst du wahrscheinlich vor dem problem, dass die passwörter nie überein stimmen .. melde dich dann einfach nochmal wenn es soweit ist
lukasstrassel
 
Beiträge: 16
Registriert: Di 1. Mär 2011, 23:07

Re: Validierung über mehrere Eingabefelder

Beitragvon euromark » Mi 9. Mär 2011, 09:57

dafür liegt bei mir das hier diese Validierungsmethode im AppModel:
Code: Alles auswählen
    /**
     * checks if the content of 2 fields are equal
     * Does not check on empty fields! Return TRUE even if both are empty (secure against empty in another rule)!
     * 2009-01-22 ms
     */

    function validateIdentical($field = array(), $compareWith = null) {
        return ($this->data[$this->alias][$compareWith] === array_shift($field));
    }
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: Validierung über mehrere Eingabefelder

Beitragvon woki » Fr 11. Mär 2011, 08:01

Danke!

Ich hab's hinbekommen!

Tolles Forum!
woki
woki
 
Beiträge: 5
Registriert: Di 8. Mär 2011, 22:18


Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste