Seltsames Verhalten von Fehlermeldungen bei "Passwort ändern" im Kundenkonto

Shopversion 6.1.5
Hallo, ich möchte die Fehlerausgaben auf der “Passwort ändern” Seite im Kundenkonto, also zum user_password.tpl in views/flow/tpl/form für den Benutzer logisch gestalten und benötigen Hilfe zum Verständnis.
Ich fange mal an mit Situation 1: Feld 1 (altes Passwort) befüllt, Feld 2 (neues Passwort) befüllt, Feld 3 (Wiederholung neues Passwort) während des befüllens wird Fehlermeldung ausgegeben “Die Passwörter stimmen nicht überein”. Die Meldung sollte m.E. verschwinden, wenn der Eintrag im Feld 3 derselbe ist wie in Feld 2, was er aber nicht tut.
Gibt man in Feld 3 ein weiteres Zeichen ein verschwindet die Fehlermeldung (obwohl die Passwörter ja nun nicht mehr übereinstimmen) Gibt man dann noch ein Zeichen ein erscheint sie wieder.
Das ist sicherlich so nicht gedacht.
Ich habe gesehen, dass die Fehlermeldungen in Core\InputValidator.php und Application\Controller\AccountPasswordController.php definert werden, aber wie komme ich der Sache bei?

Danke für Eure Tips
Mignon

P.S.: Damit das Testen nicht ein blinde Kuh-Spiel wird lasse ich mir im Frontend mit Bootstrap reveal das Passwort anzeigen.

Moin :slight_smile:

zum Verständnis musst zwischen Frontend Validierung (JavaScript) und Backend Validierung nach Abschicken vom Formular (PHP) unterscheiden.

Dies wird sicherlich über JavaScript Validierung erfolgen inkl. Fehlermeldung und die Prüfung kann erst erfolgen wenn Du ein Eingabefeld verlässt - so wird sicherlich die JavaScript Validierung umgesetzt sein.

Das wäre dann die anschließende PHP Validierung wenn Formular abgeschickt wird.

Viele Grüße,
Tim

ps. Neben der Shopversion wäre sicherlich viel relevanter welches Shop-Theme in welcher Version mit welcher Bootstrap Version und ggfs. mit Bootstrap Erweiterung jqBootstrapValidation zum Einsatz kommt.

habe es gerade in 2 Shops - 6.1 und 6.4 - getestet und kann das bestätigen. In der Version 4.10 ist das Verhalten des Scriptes aber richtig.
Das ist wohl eindeutig ein Bug.

Die Prüfung einfach veraltet im Flow Theme mit der Release Version 1.3.6 von jqBootstrapValidation https://github.com/OXID-eSales/flow_theme/blob/v3.8.0/build/vendor/jquery-bootstrap-validation/js/jqBootstrapValidation.js#L4 bzw. jqBoostrapValidation Release Version 1.3.6 vom 23. Dezember 2012 Release 1.3.6 · ReactiveRaven/jqBootstrapValidation · GitHub

Würde in eigenem Theme die Bootstrap Version 3.3.5 auf die neuste Bootstrap Version 5.1 aktualisieren und die Standard Validierung von Bootstrap ob Wert gesetzt ist Validation · Bootstrap v5.1 integrieren. Wenn man dann noch das Matching von Eingabewerten im Frontend prüfen möchte könnte man sich selber über Vanilla JavaScript dies ergänzen.

Viele Grüße,
Tim

Ich verwende Flow 3.3.0, ja, die jqBootstrapValidation.js in source/Application/views/flow/build/vendor/jquery-bootstrap-validation/js hat die v1.3.6. In der letzten flow Version die ich bei Github finde GitHub - OXID-eSales/flow_theme: OXID Flow Responsive Theme ist es dieselbe Version. Soll das ein Abschied von flow bedeuten?

Ja, langfristig schon. OXID eSales empfiehlt seit der 6.4 Serie selber das Moga Theme was aus der Community heraus entstanden ist. Dies basiert bereits auf Bootstrap Version 5.0.

Dazu hatte ich vor kurzen Blog Beitrag unter https://bisweb.me/oxid-eshop/versionen/minor-release-oxid-eshop-community-edition-6-4-0-erschienen.html veröffentlicht. Dort auch Moga Theme Demo und GitHub Repository verlinkt.

Die Serie 6.1 hat bereits End of Life (EOL) erreicht und sollte aktualisiert werden.

naja, das moga-theme enthält kein Matchen des Passwortes mehr per javascript.
das gleiche erreicht man einfach auch im flow-theme durch eine Änderung von user_password.tpl

Ich kann mir auch nicht so richtig vorstellen, dass es an der jqBootstrapValidation.js liegt. Wenn ich hier teste jqBootstrapValidation by ReactiveRaven, wähle bei Validators “match”, dann geht es einwandfrei.

ja, und bis Oxid Version 4.10 hat es auch funktioniert.

Die beiden Dateien jqBootstrapValidation.js in source/Application/views/flow/build/vendor/jquery-bootstrap-validation/js und vom Download auf jqBootstrapValidation by ReactiveRaven sind unterschiedlich.

Das wird auch eine angepasste JavaScript Datei sein, weil wie man sieht werden z.B. die Übersetzungen aus dem OXID eShop geladen z.B. unter https://github.com/OXID-eSales/flow_theme/blob/v3.8.0/build/vendor/jquery-bootstrap-validation/js/jqBootstrapValidation.js#L805

Da wäre interessant welche Flow Theme Version bei der 4.10 Serie zum Einsatz kommt, dann könnte man von dort aus ausgehend vergleichen was sich ggfs. geändert hat - das sich die Validierung unterschiedlich verhält.

Ja, das würde ich auch interessieren, welche flow Version das ist bei der es geht. In dem 6.1.4 shop habe ich ein flow 3.3.0 und ein wave 1.2.0. Mit wave funktionniert es, mit flow nicht.

in den beiden getesteten Shops wurde flow-version 1.0.0 eingesetzt

Ein Unterschied in HTML Elemente Struktur, CSS Klassen und IDs und des jqBootstrapValidation ist dort nicht wirklich zu erkennen.

Meine Vermutung wäre auch, dass eine andere Prüfung als das Matching fehlschlägt.

Dort würde ich mir im JavaScript alle Prüfungen die stattfinden über die console.log(...) ausgeben lassen. Ggfs. hängt dies auch mit der neuen Passwort Länge zusammen oder mit weiteren JavaScript Abhängigkeiten, dass eine veraltete jQuery Version erwartet wird damit es funktioniert.

Dies kann bei Legacy Code schon mal vorkommen, weil wie oben bereits erwähnt wurde die Validierung Erweiterung vor fast über 10 Jahren programmiert. Seitdem werden sich viele Abhängigkeiten geändert haben wie z.B. Bootstrap HTML Struktur inkl. CSS Klassen und IDs und JavaScript Abhängigkeiten wie jQuery Version. Hinzu kommt die Webbrowser haben sich weiterentwickelt etc.

Daher lohnt aus meiner Sicht der Aufwand nicht dort nach einem Workaround zu suchen, würde lieber nach Vorne programmieren und auf den Stand der Technik bringen.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.