[erledigt]POST-Variablen nie empty?

  • Ich grüble hier jetzt schon eine Weile an einem Problem und ich komme einfach nicht auf meinen Denkfehler.
    Mir werden via $_POST folgende Werte übertragen:


    Array
    (
    [name] =>
    [telefon] =>
    [telefax] =>
    [strasse] =>
    [plz] =>
    [ort] =>
    [id] => 0
    )


    nun prüfe ich bei jedem Wert , ob er leer ist, aber außer bei 0 ergibt sich immer false :huh:


    PHP
    foreach ($_POST as $key => $value)
        {
          if (empty($value))
          {
            echo "leer<br>";
          } else {
            echo "nicht leer<br>";
          }
        }


    Dies erzeugt folgende Ausgabe:


    nicht leer
    nicht leer
    nicht leer
    nicht leer
    nicht leer
    nicht leer
    leer


    Eine Prüfung bei einem normalen Leerstring "" ergibt wie erwartet true.


    Habe ich da etwas übersehen? ich dachte nämlich immer ein Leerstring als Post-Wert wäre leer :S




    mfg Nita


    Nachtrag:


    Habe es nochmal überprüft und die Post-Werte sind nicht wie erwartet Leerstrings, sondern Leerstrings mit der Länge 1,
    dadurch hat sich das ganze geklärt :)

  • Ich empfehle kein empty() zu benutzen.
    Hast ja selbst gesehen, dass man davon mal Kopfschmerzen bekommen kann.


    Im Fall hier würde ich strlen() nutzen

    PHP
    foreach ($_POST as $key => $value)
        {
          if (strlen($value) < 1) 
          {
            echo "leer<br>";
          } else {
            echo "nicht leer<br>";
          }
        }


    Bei Arrays nutze ich count($array) > 0 oder count($array) < 1.


    empty() ist meiner Meinung nach zu schwammig.
    Vergleiche mit == übrigens auch. siehe: Der Feine Unterschied: != und !==

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!