<FORM ACTION="URl" METHOD="GET"|"POST">
... Formularinhalte ...
</FORM>
Das URL vom Attribut ACTION ist in unserem Fall das Zielskript auf
dem Web-Server, das die übertragenen Formulardaten auswertet bzw.
weiterleitet.
Die Übertragung der Daten zum Web-Server übernimmt HTTP mit den Methoden GET
oder POST. HTTP-Nachrichten enthalten drei Bestandteile, das URI, das Kommando
und die Nachricht. Die Nachricht besteht aus Header und Body(der
Nachrichtinhalt). Die Methode GET nutzt das URI zur Übertragung, hängt die
Daten an die URL mit an, die Methode POST hingegen verfasst die Daten im
Bodyteil einer Nachricht. Jedes Formularelement ist durch die Attribute
name und value als Wert gekennzeichnet. Im PHP-Skript wird
der Name eines Formularelements als eine Variable und der Value als den
entsprechenden Wert dieser Variable ausgewertet.
Ab der aktuellen Version von PHP(4.1.0) hat der PHP-Team[php] aus
Sicherheitsgründen empfohlen, die Einstellung von register_globals
in der Konfigurationsdatei php.ini auf ``off" als
Standardwert zu setzen, damit alle Formularelemente, die sowohl durch
GET-Methode als auch durch POST-Methode übertragen wurden, nicht mehr direkt
mit dem Elementnamen als Variable in PHP-Skript ansprechbar sind. Um sie in
Anspruch nehmen zu können, bietet der PHP-Team einige neue spezielle
Variablen:
Diese speziellen Variablen sind assoziative Arrayvariablen. Die
Formularelemente sind nur noch erreichbar, indem man den Elementnamen als
Schlüssel gemäß der Übertragungsmethode, die Variable $_GET[] oder
$_POST[] einsetzt. Um das im folgenden Beispiel angezeigte
Inputelement im PHP-Skript auswerten zu können, verwendet man nicht wie
gewohnt die Variable $username, sondern die Variable
$_POST["username"] oder $_REQUEST["
username"].
<FORM ACTION="ziel.php" METHOD="POST">
<INPUT TYPE="TEXT" NAME="username" VALUE=" loginname">
... andere Formularelemente ...
</FORM>
Diese Umstellung führt dazu, dass man die Formularvariablen für alle
bisherigen Anwendungen entsprechend ändern soll. Diejenigen Anwendungen, die
nur bei der Einstellung von register_globals auf ``
on" ablaufen können, sogar nicht mehr funktionieren. Dieser Fopra hat diese
Umstellung inzwischen erlebt, und dies hat einen großen zusätzlichen
Arbeitsaufwand
verursacht. Laut dem PHP-Team sind die alten globalen Variablen wie
beispielsweise $HTTP_GET_VARS oder $HTTP_POST_VARS
zwar
noch einsetzbar, aber es lohnt sich, die neuen Variablen zu benutzen.