21.3 Variablen in PHP
Wie Sie gesehen haben, werden Variablen mit einem vorangestellten Dollarzeichen $ gekennzeichnet. Es gibt in PHP mehrere Möglichkeiten, mit Variablen zu arbeiten.
Wie oben erwähnt, müssen Sie sich bei PHP nicht um die Deklaration von Variablen kümmern. Dennoch gibt es Einiges zu beachten: Im Internet werden Variablen mit den im Kapitel 16 zu Formularen beschriebenen Aktionen GET und POST übermittelt.
Variablen an die URL anhängen | Möchten Sie zum Beispiel ein Dokument aufrufen und gleichzeitig eine Variable übertragen, um zum Beispiel die ID eines Datensatzes zu übergeben, sieht die Angabe in der Adressleiste des Browsers folgendermaßen aus:
http://www.website.de/produkte.php?PRODID=234
In diesem Fall heißt die Variable PRODID und hat den Inhalt 234. Diese Variable können Sie sich im Dokument produkte.php mit echo $PRODID ausgeben lassen oder andere Aktionen damit auslösen. Das Fragezeichen in der URL bedeutet sinngemäß: Jetzt kommen Variablen.
Mehrere Variablen anhängen | Mehrere Variablen in einer URL werden mit & verkettet:
http://www.website.de/produkte.php?PRODID=234&SUBID=2
Bei der einfachen Schreibweise: $Variablenname spielt die Art der Übertragung keine Rolle. Ab PHP 4.2.0 funktioniert diese Schreibweise nur noch innerhalb eines Dokumentes, nicht jedoch, wenn die Variablen an andere Dokumente übertragen werden.
php.ini | Ab PHP 4.2.0 ist die Standardanweisung in der PHP-Konfigurationsdatei php.ini REGISTER_GLOBALS auf off gestellt. Wenn Sie dennoch mit der bisherigen Schreibweise der Variablen arbeiten möchten, editieren Sie die php.ini und setzen Sie die Vorgabe auf REGISTER_GLOBALS on. Welche Einstellungen bei Ihnen vorliegen, können Sie mit <? phpinfo() ?> überprüfen.
Abbildung 21.1 Anzeige der REGISTER_GLOBAL mit phpinfo()
Neue Schreibweise verwenden | Falls Sie keinen eigenen Webserver betreiben, werden Sie die php.ini nicht bearbeiten können. Verwenden Sie daher am besten die neuere Schreibweise für Variablen. Auch Dreamweaver 8 benutzt diese, sodass Sie sicher sein können, dass Ihre Websites auf allen Servern lauffähig sind.
PHP überträgt Variablen zwischen URLs in Arrays. Sie werden als superglobale Arrays bezeichnet.
- Die folgende Variable beinhaltet einen Verweis zu jeder Variable im laufenden Skript:
- $GLOBALS
- Dieses ist das Array mit den Servervariablen:
- $_SERVER
- Das folgende wichtige Array beinhaltet alle Variablen, die mit HTTP GET übertragen wurden:
- $_GET
- Die einzelnen Variablen können ausgelesen werden über:
- $_GET['VARIABLENNAME']
- Das folgende wichtige Array beinhaltet alle Variablen, die mit HTTP POST übertragen wurden:
- $_POST
- Die einzelnen Variablen können ausgelesen werden über:
- $_POST['VARIABLENNAME']
- Das folgende Array beinhaltet Cookie-Variablen:
- $_COOKIE
- Dieses Array enthält alle Variablen, die dem Skript über HTTP-Post Datei-Uploads angeliefert werden:
- $_FILES
- Folgendes Array enthält alle Umgebungsvariablen:
- $_ENV
- Dieses Array enthält alle Variablen, die auf anderen Wegen in das Skript gelangen und keiner der gängigen Sicherheitsanforderungen entsprechen:
- $_REQUEST
- Variablen, die aktuell in der Session eines Skripts registriert sind, enthält das folgende Array. Mehr dazu erfahren Sie im Teil über Sessions in diesem Kapitel:
- $_SESSION
Jedes dieser Arrays setzt sich nach dem Schema in Abbildung 21.2 zusammen.
Abbildung 21.2 Array-Variablen