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

Variablen per Formular schicken

Ein Weg, Variablen an ein PHP-Script zu übergeben, ist die Eingabe über ein Formular. Alle Formularobjekte wie Textfelder, Checkboxes, Radiobuttons und auch der Submit-Knopf haben ein "NAME"-Attribut. Ist eine Eingabe erfolgt, gibt es auch einen dazugehörigen Wert. Sobald ein Formular Inhalt an das PHP-Script übergibt wird ein Arry (Werteliste) mit dem Namen $HTTP_POST_VARS erzeugt. Die übermittelten Werte aus dem Formular konnen wie folgt referenziert werden: $HTTP_POST_VARS ["formularfeldname"]. In neueren PHP-Versionen wird ausschließlich die Kurzform $_POST["formularfeldname"]

Beispiel für ein Formular

	<FORM ACTION="aktion.php" METHOD=POST>
	<INPUT TYPE="text" NAME="textfeld">
	<INPUT TYPE="submit">
	</FORM>
Mit dem Submit-Button wird aktion.php aufgerufen. Diese Datei könnte diesen Code enthalten:
	<? echo "Meine Texteingabe: " . $_POST["textfeld"]; ?>

Wichtig ist, dass sie als Methode "POST" verwenden.

Variablen als URL-Anhang schicken

Variablen können auch mit der GET-Methode an eine URL angehängt werden. In disem Fall wir ein Array mit dem Namen $HTTP_GET_VARS (kurz $_GET) gebildet

Beispiel für einen URL-Anhang

	http://www.meineDomain.de/aktion.php?text1=Hallo&text2=Welt
		
Die aufgerufene Datei aktion.php könnte diesen Code enthalten:
	<?
		echo "Mein Text: " .$_GET["text1"] . " " .$_GET["text2"];
    ?>

Bei dieser Methode ist nicht nur die Länge der übermittelten Daten beschränkt, sondern es dürfen auch keine Whitespaces oder Leerzeichen enthalten sein. Wollen Sie einen ganzen Satz übermitteln, müssen vorher alle nicht alphanumerischen Zeichen in Hexadezimalcode und Leerzeichen in +Zeichen umgewandelt werden. Aber in PHP gibt es dafür eine Funktion.

	$satz="Hallo Welt!!";
	echo '<A HREF="http://www.meineDomain.de/aktion.php?text='.urlencode($satz).'"<';
		

Eindimensionale Arrays

Schon bei manchen Formularen bekommen wir Probleme, wenn etwa bei Checkboxen mehrere Auswahlboxen markiert werden können und eine Variable damit mehrere Werte enthalten kann. Erst recht bei den später behandelten Datenbankabfragen haben wir es mit komplexen Datenstrukturen zu tun, die sich nicht einfach in einem eindimensionalen String abbilden lassen. Auch in PHP gibt es deshalb Arrays.

Text und Beispiele sind dem PHP-Handbuch entnommen.

PHP unterstützt sowohl skalare als auch assoziative Arrays. Letztendlich gibt es keinen Unterschied zwischen den beiden. Sie können ein Array erzeugen, indem sie die list() oder array() Funktionen benutzen, oder sie können explizit den Wert eines jeden Array-Elements festlegen.

$a[0] = "abc"; 
$a[1] = "def"; 
$b["foo"] = 13;
      			

Sie können ein Array auch erzeugen, indem sie einfach Werte einem Array hinzu fügen. Wenn sie einer Array-Variablen einen Wert weisen, indem sie leere Klammern benutzen, wird der Wert am Ende des Arrays hinzugefügt. Das obige Beispiel können wir so fortsezen.

 
$a[] = "hello"; // $a[2] == "hello"
$a[] = "world"; // $a[3] == "world" 
      

Arrays können durch Gebrauch der asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), und uksort()-Funktionen sortiert werden (in Abhängigkeit von der gewünschten Sortierung).

Sie können die Anzahl der Elemente eines Arrays mittels der count()-Funktion ermitteln.

Durchlaufen können sie ein Array per next() und prev()-Funktion. Eine weiter Möglichkeit ist die Funktion each().

Mehrdimensionale Arrays

Mehrdimensionale Arrays sind einfach. Für jede Dimension des Arrays fügen sie einen anderen [key]-Wert ans Ende an:

 
$a[1]      = $f;               # Ein-Dimensionales Beispiel
$a["foo"]  = $f;   

$a[1][0]     = $f;             # Zwei-Dimensional
$a["foo"][2] = $f;             # (sie können numerische und
                                  assoziative Indizes so mischen)
$a[3]["bar"] = $f;             # (oder so)

$a["foo"][4]["bar"][0] = $f;   # Vier-Dimensional!
      

In PHP ist es nicht möglich, mehrdimensionale Arrays direkt in Strings zu referenzieren. Deshalb erzeugt auch das nachfolgende Beispiel nicht das gewünschte Ergebnis:

 
$a[3]['bar'] = 'Bob';
echo "Dies funktioniert nicht: $a[3][bar]";
      

In PHP wird das o.a. Beispiel folgendes ausgeben: Dies funktioniert nicht: Array[bar] . Jedoch kann der String-Verbindungs-Operator benutzt werden, dies zu umgehen:


$a[3]['bar'] = 'Bob';
echo "Das funktioniert: " . $a[3][bar];
      

In PHP4 kann das Problem umgangen werden, indem die Array-Referenz in geschweiften Klammern eingeschlossen wird:


$a[3]['bar'] = 'Bob';
echo "Das funktioniert in PHP4: {$a[3][bar]}";
      

Man kann multi-dimensionale Arrays auf viele Arten füllen, aber der trickreichste Weg geht über das Verständnis, wie der array()-Befehl für assoziative Arrays zu benutzen ist. Die folgenden Code-Schnippsel füllen das ein-dimensionale Array über den gleichen Weg:

 
# Example 1:

$a["color"]	= "red";
$a["taste"]	= "sweet";
$a["shape"]	= "round";
$a["name"]  	= "apple";
$a[3]		= 4;


# Example 2:
$a = array(
"color" => "red",
"taste" => "sweet",
"shape" => "round",
"name"  => "apple",
3       => 4
);
      

Die array()-Funktion kann eingefügt werden für mehrdimensionale Arrays:

 
<?php
$a = array(
    "apple"  => array(
        "color"  => "red",
        "taste"  => "sweet",
        "shape"  => "round"
    ),
    "orange"  => array(
        "color"  => "orange",
        "taste"  => "tart",
        "shape"  => "round"
    ),
    "banana"  => array(
        "color"  => "yellow",
        "taste"  => "paste-y",
        "shape"  => "banana-shaped"
    )
);
  
echo $a["apple"]["taste"];    # dies wird "sweet" ausgegeben
?>
      

Machen Sie sich im Übungsteil 2 mit Formularen, deren Auswertung und Arrays vertraut

 
Zurück   Home   Nächste