# Prüfen ob Formulardaten leer sind



## mathiu (21. Januar 2005)

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

Ich habe zwei Textfelder

```
<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.


```
$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.


```
if($_POST["body"] && $_POST["subject"])
```

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


```
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?


----------



## redlama (21. Januar 2005)

Versuch's mal so:
	
	
	



```
if(isset($_POST["body"]) && isset($_POST["subject"]))
```

redlama


----------



## mathiu (21. Januar 2005)

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.


----------



## redlama (21. Januar 2005)

Dann versuch doch erstmal, ob überhaupt Daten aus dem Formular ankommen, indem Du statt der if-Anweisung ein
	
	
	



```
echo $_POST["body"];
```
machst.

redlama


----------



## mathiu (21. Januar 2005)

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.


----------



## DigitalMarine (21. Januar 2005)

Versuch es mal mit

```
if((empty($_POST["body"])) && (empty($_POST["subject"])))
```
Empty prüft, ob eine Variable leer, "" oder 0 ist


----------



## redlama (21. Januar 2005)

Mach doch mal das hier:
	
	
	



```
if($_POST["body"] == "")
  echo "body ist leer!";
else
  echo "body hat den Inhalt \"".$_POST["body"]."\"!";
```
Was passiert, wenn Du das machst?

redlama


----------



## BobDerMeister (21. Januar 2005)

schau dir mal das php Syntax Exam an. Du wirst einiges über Variablen lernen.


----------



## mathiu (21. Januar 2005)

> 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.


----------

