Moin!
Moin
empty() ist bei so vielen Dingen "empty", die man nicht als empty bezeichnen würde, das geht auf keine Kuhhaut.
Und das ist auch gut so: 0, 0.0, "", false, null, array() wird neben Isset() geprüft.
Bei Formulareingaben halte ich das schon für Sinnvoll. Damit umgeht man eventuelle Probleme wegen der losen Datentypbindung wenn man nicht mit Äquivalenz prüft. Deshalb stimme ich dir mal nicht zu.
"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.
Außerdem kann man auch ein nichtleeres Array in $_POST['username'] schicken, und das würde durchgehen.
Validierung auf die notwendigen, sinnvollen Werte, die man fordern will, ist also sowieso in größerem Umfang notwendig.
Es geht ja erstmal im ersten Schritt darum obn Passwort und Username angegeben wurde. Und das ist mit emppty in meinen Augen besser zu prüfen. Das weitergehende Validierungen vorgenommen werden müssen, ist klar. HAt aber mit dem Thema des Prüfens auf Vorhandensein nix zu tun.
Wenn ich prüfen will, ob ich auf einen Array-Schlüssel zugreifen kann, ist isset() die simpelste Variante, sofern ich NULL im Array ebenfalls als nicht existent ansehe (isset() ist auch bei NULL false).
Validierung kommt in die Validierung - und eigentlich gehört das Checken, ob ein Formularwert überhaupt gesendet wurde, mit in die Validierung rein, da prüfe ich nichts vorab mit isset().
- Sven Rautenberg