Prüfen ob Formulardaten leer sind

mathiu

Erfahrenes Mitglied
Hallo allerseits,
ich arbeite gerade an einem fremden Server und versteh die Welt nicht mehr ganz.

Ich habe zwei Textfelder
PHP:
<tr>
		<th align="center" colspan="2">
			<textarea name="body"><?= $body; ?></textarea>
		</th>
	</tr>
	<tr>
		<th align="center" colspan="2"><?= $error; ?></th>
	</tr>

diese Variablen werden beim ersten Aufruf leer initialisiert.

PHP:
		$error = "";
		$body = "";
		$subject = "";

ich war mich bis anhin gewöhnt, dass ich um zu überprüfen, ob die Felder aufgefüllt sind, einfach eine solche Abfrage machen kann.

PHP:
if($_POST["body"] && $_POST["subject"])

leider gibt diese Bedingung auch bei einer fehlenden Eingabe TRUE zurück.
Ebenfalls habe ich es so versucht:

PHP:
if($_POST["body"] !="" && $_POST["subject"] !="")

Wie gesagt handelt es sich um einen Server, welchen ich nicht kenne, und der auch sonst für mich ungewohnte Einstellungen hat.

Gibt es vielleicht eine Einstellung, welche hier einen Einfluss hat, oder mach ich etwas grundsätzlich falsch?
 
nein, das will ich ja genau nicht.
Die Variable ist ja gesetzt, wenn das Formular übermittelt wurde.
Ich will wissen, ob die Felder leer sind...das soll die If-Bedingung bewirken.
 
Dann versuch doch erstmal, ob überhaupt Daten aus dem Formular ankommen, indem Du statt der if-Anweisung ein
PHP:
echo $_POST["body"];
machst.

redlama
 
das habe ich natürlich versucht...
bei meinem Test ist die Variable wirklich leer.

vielleicht drücke ich mich falsch aus.
obwohl ich das Feld leer lasse, ist meine Bedingung trotzdem TRUE, obwohl ich eigentlich erwarte, dass die Bedingung nicht zutrifft, da ich das Feld ja leer lasse.
 
Mach doch mal das hier:
PHP:
if($_POST["body"] == "")
  echo "body ist leer!";
else
  echo "body hat den Inhalt \"".$_POST["body"]."\"!";
Was passiert, wenn Du das machst?

redlama
 
schau dir mal das php Syntax Exam an. Du wirst einiges über Variablen lernen.
Vielen Dank, ich kenne das Exam, habs sogar nochmals durchgesehen. Nur leider kann ich keinen Bezug zu meinem Problem sehen, ausser dass explizit steht, dass es mit empty() funktionieren müsste. Würde aber noch immer nicht erklären, wieso es auf einem anderen Server auf die andere Weise ebenfalls funktioniert.

Die beiden anderen Denkanstösse werde ich später versuchen, kann im mom leider nicht.

EDIT:
Mit empty funktioniert es, seltsam ist nur, dass es auf anderen Servern auf mit der erstgenannten Besingung funktioniert.
 
Zuletzt bearbeitet:
Zurück