Tom: Umwandlung in integer WERT

Beitrag lesen

Hello,

if ((!isset($_POST['eingabe']))OR(empty($_POST['eingabe']))) $neu=0;

wenn du mit empty() prüfst, brauchst du isset() nicht mehr. Das ist bei der Prüfung mit empty() eingeschlossen.

Aber die Prüfung mit empty() ist bei einem erwarteten Integer äußerst ungeschickt.

Nehmen wir mal an, dass ein nicht ausgefülltes Eingabefeld bedeuten soll "keine Änderung am serverseits vorhandenen Wert gewünscht", dann würde die Prüfung mit empty() und das anschließende 0-setzen ein sachlicher Fehler sein.

Wir vergessen deshalb nicht, dass empty() sowohl bei numerisch 0 (hier als Stringabbild übermittelt), als auch bei leerem String oder Leerzeichen im String mit TRUE antwortet.

Es ist also besser, hier

if(isset($_POST['eingabe']) and is_string($_POST['eingabe']) and strlen($_POST['eingabe']) > 0)

oder

if(isset($_POST['eingabe']) and is_string($_POST['eingabe'])
       and strlen(trim($_POST['eingabe'])) > 0)

zu arbeiten, je nachdem, was gewünscht wird.

Denn außerdem könnte $_POST['eingabe'] auch noch ein array sein ...

Die Filterfunktionen versuchen, diese ganzen Anforderungen kompakt zusammenzufassen.
http://de3.php.net/manual/en/book.filter.php

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de