Moin!
"0" wäre ein gültiger Username oder ein gültiges Passwort, genau wie "1". Außer wenn Zahlen grundsätzlich nicht erlaubt wären, und Passworte länger als ein Zeichen sein müssen.
Validierung auf die notwendigen, sinnvollen Werte, die man fordern will, ist also sowieso in größerem Umfang notwendig.
Nein, ist sie hier nicht. Die endgültige Validierung wird definitiv durch den Abgleich mit der Benutzerdatenbank vorgenommen. Alles, was vorher stattfindet, ist lediglich eine und ganz bewusst eine einfache(!) Prüfung um bei leeren Eingaben nicht erst das ganze System anzuwerfen, Dateien zu lesen oder Datenbanken zu befragen und ergo eine Menge Prozessortakte zu verbraten.
Außerdem kann man auch ein nichtleeres Array in $_POST['username'] schicken, und das würde durchgehen.
Die Prüfung mit if isset() soll vor allem verhindern, dass die Prüfung gegen den leeren String eine Notiz schmeißt. Wenn aller hundert Jahre jemand hingeht und meint, mit allerhand Aufwand einen Array senden zu müssen um mit seinem Datenmüll bei isset() noch durchzukommen, dann mag er sich an der Notiz einen runterh... Pardon: an der selben goutieren.
Angemeldet wird er damit nicht und ich habe die genannten hundert Jahre lang keinen Prozessortakt und auch keine Mikrowattmillisekunde darauf verschwendet, auf jeden denkbaren Unsinn zu prüfen.
Jörg Reinholz