Sven Rautenberg: Einganefeld abfragen

Beitrag lesen

Moin!

Ich will eine Prüfung der eingaben vornehmen und schauen ob ein Wert eingegeben wurde. Nur wird immer die letzte Variable nicht berücksichtigt? Selbst wenn in $ort nichts steht gehts weiter ??

if($name | $strasse | $plz | $ort  == "")

Wenn du nochmal ganz genau definieren könntest, wann genau deine IF-Abfrage greifen soll, und wann nicht, gibts bestimmt eine schöne Lösung dafür.

Zwei Anmerkungen aber: Der "|" ist ein binäres Oder. Das willst du garantiert nicht verwenden. Nimm "||" dafür.

Und dann zu deiner Schreibweise: Mir _scheint_, du wolltest aussagen: "Wenn $name, $strasse, $plz oder $ort leer sind, dann..."

Deine Kurzschreibweise gibt das aber nicht wieder!

Die Bedingung im IF ist wahr, wenn eines der Bestandteile wahr ist.

$name ist wahr, wenn es etwas anderes als den Leerstring enthält.
$strasse ist wahr, wenn es etwas anderes als den Leerstring enthält.
$plz ist wahr, wenn es etwas anderes als den Leerstring enthält.
$ort=="" ist wahr, wenn es GENAU den Leerstring enthält.

Mit anderen Worten: Deine ungewöhnliche, versuchte Kurzschreibweise hat genau dazu geführt, dass du dir deine Bedingung kaputt gemacht hast.

Tipp: Nicht abkürzen! Klammern setzen!

if (($name=="")||($strasse=="")||($plz=="")||($ort==""))
...

Das geht in die IF-Klammer, wenn mindestens einer deiner Strings leer ist.

Der Vergleich mit "" ist hierbei förderlich, denn auch der String "0" würde als "falsch" ausgewertet, wenn du einfach nur "if ($name)" schreiben würdest.

- Sven Rautenberg

--
Die SelfHTML-Developer sagen Dankeschön für aktuell 19031,30 Euro Spendengelder!