PHP 4.3

3 Übergabe von Formulardaten

Diese Lerneinheit beschäftigt sich mit Formularen für Ihre Homepage und mit der Realisierung von Formularübergaben mit PHP. Während Sie Formularfelder bisher im Rahmen der Darstellungssprache HTML nur als statische Gebilde kennen gelernt haben dürften, werden Sie in diesem Abschnitt einiges darüber erfahren, wie man mit den Formulareingaben interaktiv arbeiten kann. PHP stellt dafür unterschiedliche Methoden zur Verfügung, die Sie am Ende dieser Lerneinheit beherrschen und entsprechend Ihren Bedürfnissen einsetzen können sollen.



Datenübergabe mit PHP

In der letzten Lerneinheit haben Sie die Grundlagen der PHP-Syntax kennen gelernt. Die Anwendungsmöglichkeiten sind damit natürlich noch sehr beschränkt. Es fehlt die Interaktivität, mit der Sie Internetanwendungen wie Gästebücher, Foren, Onlineshops oder Redaktionssysteme realisieren können.

Technisch gesehen benötigen wir also Möglichkeiten, um Daten vom Client an den Server zu senden. Und genau darum geht es in dieser Lerneinheit:

Die Übergabe von Daten, insbesondere Formulardaten, mit den Methoden get und post.

Eine der großen Stärken von PHP ist die einfache Übergabe und Verarbeitung von Formulardaten. Formulare dürften Ihnen bereits durch HTML bekannt sein, denn die Darstellung eines Formulars wird mittels HTML-Elementen erzeugt. Um Ihnen die Übergabe von Formulardaten mit PHP zu erläutern, müssen wir zuerst einen kleinen Ausflug in die Tiefen des Hypertext Transfer Protocol (HTTP), des Protokolls für die Übertragung von Daten im World Wide Web, machen.

Die Methoden get und post

Sicherlich ist Ihnen bei der Erstellung von HTML-basierten Formularen bereits ein Attribut des form-Tags aufgefallen: method="get" bzw. method="post". Mit der Angabe einer der beiden Optionen steuern Sie, welche Art von Anfrage der Browser des Clientcomputers gegenüber dem Server zur Übertragung der Information nutzen soll.

Bei der get-Methode fordert der Client Daten zur Darstellung eines Dokuments an, indem er den Dokumentennamen zusammen mit einer Reihe von Parametern in einem URL formuliert und an den Server sendet. Zur Hintergrundinformation beschreiben wir Ihnen kurz den weiteren Verlauf, wobei diese Zusatzinformationen nicht unmittelbar zum Verständnis des Folgenden notwendig sind. Der Server-Rechner speichert nun also die vom Formular stammenden Daten in einer Umgebungsvariablen (Umgebungsvariablen sind Variablen des Webserverprogramms auf Betriebssystemebene des Server-Rechners) namens QUERY_STRING ab. Der Servercomputer kann durch das einleitende Fragezeichen eine Trennung zwischen dem Dokumentennamen und den Parametern, die voneinander durch ein kaufmännisches &-Zeichen getrennt sind, durchführen. Ein typischer URL könnte dann beispielsweise folgendermaßen aussehen: http://www.example.com/bestellen.php?artikel=4711&menge=2

Sinn machen diese Parameter natürlich nur, wenn im action-Parameter des form-Tags ein Dokument definiert wurde, das die nachfolgenden Parameter des URL verarbeiten kann. In unserem Fall würde es sich um ein PHP-Skript handeln, welches die übertragenen Parameter auswertet und entsprechende Antwortdaten an den Client zurücksendet. PHP nimmt Ihnen dabei die Arbeit ab, die Umgebungsvariable QUERY_STRING auszulesen und in einzelne Zeichenketten zu trennen.

Anders erfolgt die Art der Datenübertragung bei der post-Methode. Zwar wird auch hier in der action ein verarbeitendes Programm angegeben, jedoch werden die zu übertragenden Daten nicht in Form einer Parameterkette mit der URL übertragen, sondern befinden sich im Body-Abschnitt einer Client-zu-Server-Anfrage. Auch hier möchten wir Ihnen einige Hintergrundinformationen zum weiteren Ablauf geben, die auch nur für den Fall nur gelten, dass eine CGI-Schnittstelle verwendet wird. Die Daten werden im Falle der post-Methode nicht als Umgebungsvariable gespeichert, sondern direkt an das aufzurufende Programm über die sogenannte Standardeingabe weitergeleitet. Die Standardeingabe verhält sich dabei gegenüber dem Programm so wie eine Eingabe des Benutzers über eine Kommandozeile. Wie auch bei der get-Methode verarbeitet in unserem Fall PHP die ankommenden Daten des Formulars und stellt sie dem Skript zur Verfügung, das ein entsprechendes Dokument an den Client zurücksendet.

Wie in den weiteren Lerneinheiten zu sehen sein wird, ist es während der Entwicklungsphase eines Skripts günstig, die get-Methode einzusetzen, weil die Parameterübergabe in der Adresszeile des Browsers sichtbar und dadurch kontrollierbar ist. Sie können natürlich auch sofort die post-Methode einsetzen.

Grundsätzlich kann man sagen, dass die get-Methode immer dann geeignet ist, wenn Sie Informationen vom Server abrufen möchten, aber nichts auf dem Server-Rechner speichern möchten. Insbesondere dann, wenn Sie Wert darauf legen, dass die Benutzer ein Bookmark setzen können, das mitsamt den Parametern eines abgesandten Formulars (z.B. bei Suchanfragen) auf Ihr PHP-Skript weist, ist die get-Methode erforderlich.
Die post-Methode ist dann empfehlenswert, wenn Sie größere Datenmengen zum Server übertragen wollen oder Daten, beispielsweise aus Formularen, auf dem Server-Rechner speichern möchten und/oder es dem Benutzer nicht so leicht machen wollen, Einblicke in die von Ihnen verwendeten Parameter (und damit im Skript verwendeten Variablen) zu erhalten. Eine wirkliche Absicherung stellt dies jedoch nicht dar, da die meisten Browser das Speichern des HTML-Dokuments bzw. die direkte Einsicht in den Quelltext eines HTML-Dokuments und das darin enthaltene Formular gewähren.

Kommentare (0)

Ihr Kommentar

Name