Login


 
Newsletter
Werbung

Di, 25. April 2000, 00:00

PHP Workshop: Formulare

Formulare in HTML

Das Weiterverarbeiten von HTML-Formularen mit Hilfe eines PHP-Skripts ist eine sehr wichtige, aber glücklicherweise auch sehr einfache Aufgabe. Zur Demonstration definieren wir folgendes HTML-Formular:

<form action=&quot;formtest.php&quot; method=&quot;post&quot;>
 Name: <input type=&quot;text&quot; name=&quot;name&quot;><br>
 Alter: <input type=&quot;text&quot; name=&quot;alter&quot;><br>
 <input type=&quot;submit&quot; name=&quot;absenden&quot; value=&quot;Absenden&quot;>
</form>

GET und POST

Statt der Methode POST könnten wir in dem obigen Formular auch die Methode GET verwenden. Doch worin genau liegt der Unterschied?

GET und POST sind die zwei Übertragungsmethoden des HTTP-Protokolls, mit deren Hilfe Dokumente angefordert und Formulardaten an ein PHP-Skript übertragen werden können. Die GET-Methode überträgt die Daten als Teil des URL. Das sieht dann z.B. so aus:

http://www.webserver.cx/beispielskript.php?id=1&name=test

Der URL hat dabei immer folgenden Aufbau: Zuerst kommt die Adresse und der Name des Dokuments oder Skripts. Die zu übertragenden Daten werden durch ein ? von der eigentlichen Adresse getrennt. Danach kommen dann die Daten, in Form von Key-Value-Pairs. Im obigen Beispiel wird der Variablen id der Wert 1 und der Variablen name der Wert test zugewiesen. Die beiden Key-Value-Pairs werden dabei durch ein &amp; voneinander getrennt.

Bei der POST-Methode hingegen werden die Daten im HTTP-Header und damit für den User unsichtbar übertragen.

Welche Methode soll ich verwenden?

Jede der beiden Methoden hat bestimmte Vor- und Nachteile. Deshalb kann man nicht einfach eine der beiden für jedes Eingabeformular einsetzen. Deshalb hier nun eine Übersicht, welche Methode für welche Einsatzbereiche am besten geeignet ist:

Einsatzbereich Methode
Übertragung großer Datenmengen: POST
Es werden Vertrauliche Daten übertragen: POST
Es soll ein Bookmark auf die Antwortseite angelegt werden können: GET
Antwort soll cachebar sein: GET
Der User soll möglichst wenig von den internen Abläufen mitbekommen: POST

Weiterverarbeiten der Formulardaten

Das Entgegennehmen von Formulardaten ist eine der größten Stärken von PHP. Wo man in vielen anderen Sprachen oftmals noch selbst Hand anlegen musste, um die per Formular übergebenen Daten in die entsprechenden Variablen einzulesen, bekommt man die Formulardaten in PHP auf dem Silbertablett serviert :-) Selbst die Unterscheidung zwischen GET oder POST wird dem Skript abgenommen. Stattdessen überprüft der PHP-Interpreter, ob Daten an das Skript übertragen wurden. Wenn dem so ist, extrahiert er sie aus dem URL bzw. aus dem HTTP-Header, erzeugt entsprechende Variablen und füllt sie mit den übertragenen Daten.

Hier nun ein entsprechendes Skript zu unserem Beispielformular weiter oben (die Quellen gibt's natürlich auch zum Download):

<?php
echo &quot;Ihr Name ist $name.&quot;;
echo &quot;Sie sind $alter Jahre alt.&quot;;
?>

Entpacken Sie einfach die Quellen innerhalb ihres Document Root und rufen Sie die Datei form.html auf. Wenn Sie das Formular ausfüllen und auf Absenden klicken, sollten Sie etwa diese Ausgabe erhalten:

Ihr Name ist Andreas.
Sie sind 17 Jahre alt.

[<< Vorheriger Teil] [Nächster Teil >>]

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung