Hello,
du bekommst als POST oder GET Parameter immer nur Strings. Das musst Du also nicht wirklich prüfen. Prüfen könntest Du, ob die Parameter gefüllt oder leer waren (mit
empty($_POST['...'])
.
Nee, das ist zwar vermutlich hier trotzdem brauchbar, weil man keine Passworte akzeptieren will, die mur ein Digit haben, aber es ist formal falsch!
Mit empty() würden auch die Werte "0" und " " als leer identifiziert. Das will man sicherlich nicht.
Die Prüfung müsste z. B. auf
if(isset($_POST['password1']) && (strlen($_POST['password1']) > 7))
{
### ...
}
lauten.
Reihenfolge:
- Vorhandensein der POST-Parameter mit isset() prüfen
- Übereinstimmung prüfen (===, identisch)
- Mindestlänge prüfen
- verlangten Zeichenvorrat prüfen
4a. auf erlaubte Zeichen prüfen
4b. auf geforderte Anzahl von Versalien, Gemeinen, Ziffern, Sonderzeichen prüfen - hashen (bitte nicht mehr mit md5(), sondern mit password_hash() )
- eintragen
- ggf. Bestätigungsmail (selbstverständlich ohne das Passwort!) senden
Und der ganze Vorgang muss über TLS laufen.
Glück Auf
Tom vom Berg
--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.