Technikerschule
Nördlingen
Programmierung dynamischer Internetseiten
Startseite
Termine
Links
Einführung
Netzdiagnose
Webserver
HTML-Unterlagen
HTML-Praxis
Stylesheets
Javascript
WAMP-Installation
PHP-Lektionen
PHP-Übungen
Vorlagen
Kontakt

Variable auf Inhalt oder Existenz überprüfen

Bei der Auswertung von Formularen ist es oft nötig die Eingaben auf Ihre Richtigkeit beziehungsweise darauf zu prüfen, ob sie überhaupt vorhanden sind. Dazu bedient man sich in der Regel einer if-Konstruktion.

Beispiel: Ein Formularfeld mit dem HTML-Code. In diesem Fall wird ein Array-Element auf seine Existenz und Inhalt überprüft. Die Überprüfung gewöhnlicher Variablen funktioniert genauso.

<input type="text" name="vorname">

erzeugt im mit "post" aufgerufenen PHP-Script ein Array-Element $_POST["vorname"].

Zur Überprüfung von Existenz und Inhalt von Variablen gibt es mehrere Möglichkeiten:

A.

if($_POST["vorname"])
{
	
  echo "Hallo ".$_POST["vorname"];

}else{

  echo "Sie müssen einen Vornamen eingeben";
  exit;	

}

Die Variante gibt nur TRUE, also wahr zurück, wenn die Variable bzw das Array-Element existieren und einen Inhalt haben. Die Zahl 0 wird dabei nicht als Inhalt erkannt.

B.

if(!$_POST["vorname"])
{
	echo "Sie müssen einen Vornamen eingeben";
  	exit;	
  

}else{

    echo "Hallo ".$_POST["vorname"];
}

Die Variante B ist die Umkehrung von A. Sie gibt gibt TRUE zurück, wenn die Variable oder das Array-Element nicht vorhanden sind oder wenn sie keinen Inhalt haben oder den Wert 0 haben.

C:

if($_POST["vorname"] != "")
{
	
  echo "Hallo ".$_POST["vorname"];

}else{

  echo "Sie müssen einen Vornamen eingeben";
  exit;	

}

Die Variante C erkennt Eingaben, die "ungleich leer" sind. Auch hier ist die 0 ein Sonderfall. Wird sie als Zahl definiert, also $zahl=0; , dann ist sie im Sinne dieser Abfrage "leer". Wird 0 dagegen mit Hilfe von Anführungszeichen als String definiert, also $zahl="0"; , dann hat die Varible dagegen einen Wert und ist "ungleich leer". Im unserem Beispiel wird das Formular feld als "nicht leer" erkannt und die Zahl 0 angezeigt.

D:

if($_POST["vorname"] == "")
{
	
  echo "Sie müssen einen Vornamen eingeben";
  exit;	


}else{
	
  echo "Hallo ".$_POST["vorname"];
  
}

D ist die Umkehrung von Variante C. Geprüft wird dabei nicht nur auf den Inhalt, sondern es wird auch dann TRUE, also wahr, zurückgegeben, wenn es die Variable $vorname überhaupt nicht gibt.

E:

Für Untersuchungen, ob Variablen vorhanden sind oder einen Wert haben, können auch die Funktionen isset() und empty() eingesetzt werden.

if(isset($_POST["vorname"]))
{
	
  echo "Es wurde ein Formular geschickt, das nun ausgewertet werden kann";
  exit;	


}else{
	
  echo "Diese Variable gibt es nicht, wir müssen dem User ein Formular für seine Eingabe schicken";
  
}

Die Funktion isset() prüft lediglich das Vorhandensein einer Variable, sie gibt deshalb auch TRUE, also wahr zurück, wenn der Inhalt leer oder 0 ist. Ein mit "post" gesendetes Formularfeld würde also erkannt werden, egal ob es ausgefüllt oder leer ist. Damit eignet sich isset() aber nicht zur Eingabekontrolle. Wenn ein Feld vom User ausgefüllt werden soll, kann die Funktion empty() benutzt werden.

if(empty($_POST["vorname"]))
{
	
  echo "Sie müssen einen Vornamen eingeben";
  exit;	


}else{
	
  echo "Hallo ".$_POST["vorname"];
  
}

Wieder ist die Zahl 0 ein Sonderfall. Wird aus einem Formularfeld nur ein 0 gesendet, gilt es bei empty()als leer

Sowohl isset() als auch empty() können in ihrer verneinten Form

if(!isset($_POST["vorname"]))
{
	
 	Programmblock

}




if(!empty($_POST["vorname"]))
{
	
 	Programmblock

}
	

verwendet werden, also "wenn nicht vorhanden" beziehungsweise "wenn nicht leer".

 
Zurück   Home   Nächste