Sobald ein Formular an ein PHP-Skript übergeben wird, wird
jede Variable dieses Formulars dem Skript automatisch
verfügbar gemacht. Dafür sorgt PHP.
Falls die Konfigurationsoption
track_vars auf "on" gesetzt ist,
werden diese Variablen in diesen assoziativen Arrays abgelegt
$HTTP_POST_VARS,
$HTTP_GET_VARS und/oderr
$HTTP_POST_FILES, entsprechend der Quelle, aus der
die fragliche Variable kommt.
Für weitere Informationen über diese Variablen lesen Sie bitte den
Abschnitt über
Vordefinierte Variablen.
Wird dieses Formular abgeschickt, steht der Wert des Textfeldes in der
Variable $HTTP_POST_VARS['username'] zur Verfügung.
Wenn in der Konfigurationsdatei die Option
register_globals
auf "on" gesetzt ist, steht die Variable auch als
$username global zur Verfügung.
Anmerkung:
Die Konfigurationseinstellung zu
magic_quotes_gpc
betrifft Get, Post and Cookie Werte. Ist diese Einstellung aktiv
wird der Wert (It's "PHP!") automatisch zu (It\'s \"PHP!\").
Escaping ist notwendig, wenn Sie ihre Daten in eine Datenbank einfügen
wollen. Siehe auch: addslashes(),
stripslashes() und
magic_quotes_sybase.
Im Zusammenhang mit Formular-Variablen versteht PHP auch
Arrays (siehe auch die verwandte Faq).
Sie können z.B. die betreffenden Variablen gruppieren oder dieses
Leistungsmerkmal nutzen, um Werte aus Mehrfach-Auswahl-Bereichen
zu erhalten.
Zur Übertragung eines Formulars kann auch ein Bild (Image)
statt eines Übertragungs-Schalters (Submit-Button) benutzt
werden, dessen Tag wie folgt aussieht:
<input type="image" src="image.gif" name="sub">
Klickt der Benutzer irgendwo auf das Bild, wird das entsprechende
Formular an den Web-Server übertragen. Hierbei sind zwei
zusätzliche Variablen vorhanden, sub_x und sub_y. Diese enthalten
die Koordinaten des Klick-Punktes innerhalb des Bildes. Die
Erfahreneren werden sagen, dass die Variablen, die vom Browser gesendet
werden einen Punkt enthalten statt eines Unterstrichs. Dieser Punkt
wird von PHP automatisch in einen Unterstrich verwandelt.
PHP unterstützt HTTP-Cookies, wie sie in Netscape's Spec definiert sind.
Cookies ermöglichen die Daten-Speicherung innerhalb der jeweiligen
Browser-Umgebung zur Weiterleitung oder wiederholten Identifikation von
Benutzern. Sie können Cookies erzeugen, indem sie die Funktion
setcookie() benutzen. Cookies sind Teil des
HTTP-Headers, deshalb muss die setcookie-Funktion aufgerufen werden,
bevor irgendeine Ausgabe an den Browser gesendet wird. Dabei handelt es
sich um die gleiche Einschränkung, die auch für die
header()-Funktion gilt. Alle Cookies, die der Client
an sie sendet werden in PHP-Variablen umgesetzt, genau wie die Daten
bei den GET- und POST-Methoden.
Wenn sie einem einzelnen Cookie mehrere Wert zuweisen wollen
müssen sie dem Cookie-Namen [] hinzufügen.
Z.B.:
Bedenken sie, dass ein Cookie ein vorhergehendes Cookie
gleichen Namens überschreibt, es sei denn, der Pfad oder
die Domain ist anders. Für eine Warenkorb-Anwendung können
Sie deshalb z.B. einen Zähler bilden und diesen weiterleiten:
PHP sorgt automatisch für die Verfügbarkeit der Umgebungs-
Variablen als normale PHP-Variablen.
echo $HOME; /* Zeigt die HOME-Umgebungs-Variable (sofern gesetzt). */
Da Informationen per GET, POST und Cookie-Mechanismen übergeben
werden, ist es manchmal das Beste, Umgebungs-Variablen explizit
auszulesen. Dadurch wird die richtige Version eingelesen. Hierfür
kann die getenv()-Funktion genutzt werden. Den
Wert einer Umgebungs-Variablen können Sie per putenv()-
Funktion setzen.
Normalerweise verändert PHP die Variablen-Bezeichner nicht,
wenn sie einem Skript übergeben werden. Es sollte aber beachtet
werden, dass der Punkt (".") kein gültiger Bestandteil eines
Variablen-Bezeichners ist. Deshalb achten sie auf folgendes:
Der PHP-Parser sieht eine Variable namens $varname,
gefolgt von einem Zeichenketten-Verbindungs-Operator, dieser wiederrum
gefolgt von der offenen Zeichenkette 'ext' (also nicht eingegrenzt
durch '"' und auch keinem Schlüssel oder reserviertem Bezeichner
entsprechend). Das kann natürlich nicht zum gewünschten Ergebnis
führen.
Deshalb ist es wichtig zu wissen, dass PHP in den ihm übergebenen
Variablen alle Punkte (.) automatisch durch einen
Unterstrich (_) ersetzt.
Da PHP den Typ der Variablen bestimmt und (im Allgemeinen) selbst
eine entsprechende Umformung vornimmt, ist es nicht immer klar,
welchen Typ eine Variable gerade hat. PHP beinhaltet einige
Funktionen, die dies herausfinden. Als da sind:
gettype(), is_long(),
is_double(), is_string(),
is_array() und
is_object().