cake php Passwort-Validierung

7
%Vor%

Dieser Code funktioniert nicht und gibt immer die Fehlermeldung aus, auch wenn sie übereinstimmen. Auch wenn ich eine Bearbeitung mache, bekomme ich den folgenden Fehler, da es kein Passwortfeld gibt. Gibt es irgendeine Lösung

? %Vor%     
aWebDeveloper 21.09.2010, 13:19
quelle

6 Antworten

5

hier ist der Fehler

%Vor%

Ich habe es in

geändert %Vor%

Auch die strcmp-Funktion hatte Fehler, da sie im obigen Code die ganze Zeit 0 (d. h. False) zurückgeben würde

%Vor%     
Web Developer 24.09.2010, 04:58
quelle
12

Verwenden Sie die AuthComponent? Beachten Sie, dass alle eingehenden Passwortfelder (aber nicht "Passwort bestätigen" -Felder, check mit debug($this->data) ) hashed sind, so dass die Felder niemals gleich sind. Lesen Sie das Handbuch und verwenden Sie AuthComponent::password , um die Überprüfung durchzuführen.

Nachdem ich das gesagt habe, hier ist etwas, was ich benutze:

%Vor%

Das ist aus folgenden Gründen schlecht:

  • Hat eine enge Kopplung mit dem Formular, erwartet immer, dass ein Feld password_control vorhanden ist. Sie müssen die Feld-Whitelist verwenden oder die Validierung deaktivieren, wenn Sie keine in Ihren Daten haben, z. B. $this->User->save($this->data, true, array('field1', 'field2')) .
  • Manuell hasht das Passwort wie die AuthComponent (da es keinen sauberen Zugriff auf Komponenten aus dem Modell gibt). Wenn Sie den in der AuthComponent verwendeten Algorithmus ändern, müssen Sie ihn auch hier ändern.

Nachdem das gesagt wurde, validiert es transparent und erzeugt korrekte Fehlermeldungen sowohl für die Passwort- als auch für die Passwortkontrollfelder, ohne dass zusätzlicher Code in der Steuerung erforderlich ist.

    
deceze 21.09.2010 13:36
quelle
3

Für Passwort bestätigen, altes Passwort und Passwort bestätigen

%Vor%     
user2293605 19.06.2013 12:49
quelle
2

Für Benutzer von CakePHP 2.x, die die Authentifizierung verwenden, können Sie feststellen, dass "AuthComponent nicht mehr automatisch jedes gefundene Passwort hasht". I.e. Die obigen Lösungen sind möglicherweise nicht der richtige Weg zur Lösung des Problems für 2.x. Ссылка

    
Samuel V 13.05.2013 15:36
quelle
1

Hier ist meine Lösung:

Sie müssen eine Methode namens "match" erstellen (Sie können es benennen, was Sie wollen):

%Vor%

Und die $ validate-Methode muss so aussehen:

%Vor%

Dabei ist password2 das Feld zum Vergleichen Ihres ersten password -Feldes

Ich bin froh, es zu teilen! : D

    
Wuilliam 12.06.2013 20:07
quelle
0

Würde dies helfen: Ссылка ? Das sollte für die Passwort-Validierung sorgen.

    
Suman 29.03.2012 14:35
quelle

Tags und Links