Hallo zusammen,
ich muss auf einer Seite eine "Passwort ändern" Funktion anlegen und habe folgendes vorbereitet:
Code
<we:ifNotWebEdition>
<we:ifVar type="post" name="requestPwd" match="1" comment="wird vom Button gesetzt">
<we:customerResetPassword type="direct" required="Forename,Surname,Username" loadFields="Forename,Surname,Username" passwordRule="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{11,})"/>
<we:ifNotCustomerResetPassword>
<h2>Passwortänderung fehlgeschlagen</h2>
<we:ifNotCustomerResetPassword type="passwordRule">
<p>Das Passwort sollte eine Länge zwischen 11 und 20 Zeichen und mindestens 1 Zahl, 1 Groß-, 1 Kleinbuchstabe und 1 Sonderzeichen enhalten: <strong>! # $ % ( ) * + , - . : ; = ? @ [ ] ^ _ { | } ~</strong></p>
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="passwordMismatch">
<p>Die Passwörter stimmen nicht überein.</p>
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="required">
<p>Sie haben nicht alle Felder korrekt ausgefüllt.</p>
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="token">
<p>Das Token ist ungültig oder zu alt, bitte laden Sie die Seite neu!</p>
</we:ifNotCustomerResetPassword>
<we:else/>
<we:setVar to="global" nameto="disablePasswordResetForm" value="1" comment="steuert, ob das Formular angezeigt wird oder nicht"/>
<h2>Passwort erfolgreich geändert</h2>
</we:ifNotCustomerResetPassword>
</we:ifVar>
<we:ifVarEmpty type="global" match="disablePasswordResetForm">
<we:form id="self" method="post">
<we:sessionField name="Username" type="textinput" hidden="true"/>
<we:sessionField name="Forename" type="textinput" hidden="true"/>
<we:sessionField name="Surname" type="textinput" hidden="true"/>
<table>
<tr>
<td>
<label for="Password">Neues Passwort</label>
</td>
<td>
<we:sessionField type="password" name="Password" id="Password" required="required"/>
</td>
</tr>
<tr>
<td>
<label for="Password2">Passwort wiederholen</label>
</td>
<td>
<we:sessionField type="password" name="Password2" id="Password2" required="required"/>
</td>
</tr>
</table>
<button type="submit" name="requestPwd" value="1">Passwort ändern</button>
</we:form>
</we:ifVarEmpty>
</we:ifNotWebEdition>
Display More
Ich habe Probleme mit passwordRule="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{11,})"
Ich kann im Passwort Sonderzeichen wie & speichern, wird aber anscheinend von webEdition codiert (&) und der User wundert sich, warum er sich dann nicht mehr korrekt anmelden kann. Gibt es eine Möglichkeit nur bestimmte Sonderzeichen in der Passwordrule zuzulassen? Zahlen, Groß- und Kleinbuchstaben und nur bestimmte Sonderzeichen? Gibt es zudem die Möglichkeit dann auch die Fehler für die Passwortlänge getrennt auszugeben und nicht alles innerhalb von <we:ifNotCustomerResetPassword type="passwordRule">?
WE 9.2.3.0
PHP 8.3
Gruß Heiko