Platzhalter

 
Platzhalter PlatzhalterPlatzhalter

PHP 4.2.0: Probleme mit Variablen

Platzhalter
 
  Startseite
  eBook-Projekt
  Web-Lexikon
  Bücher bestellen
   
  Design-Theorie
  Design-Praxis
  Promotion
  HTML/XML-Praxis
  Projekt-Management
  Webmaster-Praxis
  Fragen & Antworten
  Technik-Ecke
   
  Portal/Links
  Buch-Rezensionen
  Software
  Impressum
PlatzhalterPlatzhalter







 

Platzhalter Ab der PHP-Version 4.2.0 funktionieren manche Scripts auf einmal nicht mehr. Woran kann das liegen?

Variablenübergabe


Weit verbreitet ist ein Problem mit Variablen: so wurden in früheren PHP-Versionen über einen GET-Request übergebene Werte (z.B. .../xyz/skript.php?variable=667) einfach als im Skript globale Variablen übergeben. In unserem Beispiel wäre also eine Variable $variable registriert worden, die den Wert 667 gehabt hätte.

Doch das wurde nun in der Standardeinstellung geändert, u.a. aus Sicherheitsgründen. So wird verhindert, dass Daten von außen den Variablen-Namensraum von Skripten beeinflussen, ohne dass der Programmierer vorher eine explizite Anweisung gegeben hat.

Ist der neue Mechanismus aktiv?


Doch bevor Sie nun Ihre Scripts modifizieren, sollten Sie überprüfen, ob Ihre Probleme überhaupt mit dem neuen Verhalten zu tun haben. Starten Sie daher eine PHP-Datei, die nur den Befehl <?php phpinfo(); ?> enthält, und suchen Sie in der Ausgabe nach dem Wert der Einstellung register_globals. Nur, wenn diese auf off steht, hat sich das Verhalten des Interpreters gegenüber früheren Versionen geändert.

Auf Variablen zugreifen


Doch wie kommen Sie nun an übergebene Werte heran? Verwenden Sie die globalen Umgebungsvariablen. Dabei handelt es sich um assoziative Arrays.

Wenn z.B. ein Wert über die GET-Methode übergeben wurde, verwenden Sie den Befehl $_GET[variable]. Wenn POST verwendet wurde, nehmen Sie stattdessen $_POST[variable].

Auch Server-Eigenschaften, Cookies und mit Formularen übergebene Dateien müssen nun auf diese Art und Weise abgefragt werden. Die zugehörigen Umgebungsvariablen sind $_SERVER, $_COOKIE und $_FILES. Beispiel: $_SERVER['HTTP_USER_AGENT'].

Tipp zur Umstellung


Gerade bei größeren Projekten kann es eine unübersichtliche und mühsame Arbeit sein, die Variablenaufrufe umzustellen. Wir empfehlen daher, am Anfang eines Scripts die entsprechenden Variablen mit dem Wert der globalen Umgebungsvariablen zu deklarieren:

$wert1 = $_GET[wert1];
$wert2 = $_GET[wert2];


Mehr Informationen


... dazu finden Sie in der PHP-Dokumentation unter Predefined Variables.

Autor: Alexander Dilthey | Erstmalig veröffentlicht: 02.11.2002 | Einen Artikel schreiben?

 

Neue Artikel

Rezension: Entwurfsmuster von Kopf bis Fuß
Rezension: Webdesign mit CSS
AJAX - XML und JavaScript in Schönheit vereint?
Rich Email - Flash im Newsletter
Screen Reader Usability
Comment Spam und CAPTCHAs
Logfile-Analyse selbst gemacht - ein Perl-Beispiel

Partnerprogramm




Kommentar

Ist die Freiheit der Informationsgesellschaft in Gefahr?
Derzeit leben wir in einer relativ freien Welt. Doch sind derzeit Tendenzen erkennbar, die Freiheit des Individuums den Interessen der Großindustrie zu opfern. Ein Kommentar.

Druckversion
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt!



Einführung in CSS bei HTMLWorld.