password_hash() hat keine Funktion um auch nur irgendeine Komplexität des Passwortes (Länge, genutzter Zeichenvorrat, ggf. Anzahl Wörter "Pferd miaut Diesel Vogel") festzustellen und (womöglich noch nach einem Test gegen häufig genutzte Passwörter) zurück zu weisen. Wie wär's damit, sowas in Deiner Klasse zu verbauen?
Ja, du hast natürlich recht. Das war hier falsch gesetzt. Ich habe es nun direkt vor $user -> create().
public function __construct( $body )
Neverever. Erst mal ist
$body
„schwer selbstverwirrend“, denn ich denke bei dem Name und im Kontext „PHP“ eher an einen HTML-Body.
Ja, ich verstehe, was du meinst. Wird halt eben vielfach als POST-body bezeichnet bzw. parsed body. Aber es kann bei anderen für Verwirrung sorgen.
Ich sehe auch nichts, was es notwendig machen könnte, die Daten als Hash/Array zu übergeben.
Was meinst du mit Hash/Array?
Soweit ich das sehe sind es auch nur drei Werte: Benutzernamem, Klartextpasswort, Mailadresse - und die stehen in der Superglobalen
$_POST
.Soll heißen, Du könntest bequem, einfach und ohne jedes verwirrendes Umherkopieren
public function __construct( $postUsernameKey = 'user', $postPasswordKey1 = 'pass1', $postPasswordKey2 = 'pass2', $postEmailKey = 'mail' )
verwenden und im Idealfall (die Formularfelder tragen gleich diese Namen) ohne Parameter aufrufen.
Ja, die Formularfelder tragen alle dieselben Namen. Aber weshalb nicht einfach:
public function __construct( $body )
{
foreach ( $body as $key => $value )
$this -> $key = $value;
}
Das stellt mir doch direkt alle eingegebenen POST-Daten als Properties zur Verfügung.
Außerdem kannst Du dann auch gleich eine Methode bauen, welche das Anmeldeformular „austut“, bei einem Konflikt (bereits verwendeter Username, zurück gewiesenes Passwort, zurück gewiesene Mailadresse) nochmals (dann ergänzt um den Hinweis und angereichert mit den Daten, welche die Prüfung bestanden haben.) aus/oder zurück gibt.
Daran habe ich die letzten Tage gearbeitet. Die grundlegende server-seitige Validierung funktioniert mittlerweile. Wenn ich damit fertig bin, widme ich mich der Javascript-Validierung.
Das Passwort brauchst Du zweimal oder willst Du diese Prüfung etwa weglassen oder an anderer Stelle durchführen? Meine Philosophie von „Objektorientierung“ wäre da eine andere.
Nein, confirmPassword brauche ich auch. Ging nur ums Prinzip.
Grüße
Boris