rob: Keine leeren Formulareingaben

Beitrag lesen

Hi!

Um sicherzustellen, daß keine leeren Eingaben übertragen wurden, hatte ich
if ( isset($_POST['eingabe']) && !empty($_POST['eingabe'])
verwendet.

Und was wäre, wenn jemand ein Leerzeichen in das Eingabefeld eingetippt hat?
Eventuell wäre eine Prüfung auf !empty(trim($_POST['eingabe'])) besser.

aber ist dieses Verhalten, den String "0" bei empty als leer zu betrachten, nicht sinnlos? Eine Zahl 0 als leer zu betrachten kann ich noch nachvollziehen, beim String fehlt mir aber das Verständnis.

PHP ist keine streng typisierte Sprache.
Wie sollte erkannt werden, ob es sich bei dem übergebenen POST-Parameter um einen String, einen boolschen Wert, eine Ganzzahl oder sonstwas handelt?

Führe einen typsicheren Vergleich durch. Mit $_POST['eingabe']!=="" sollte "0" bzw. 0 nicht mehr als leer angesehen werden (bzw. TRUE beim Vergleich mit deinem leeren String ergeben).

Schöner Gruß,
rob