Wuscheck: Frage wg. Änderung der Software-Version von PHP4 auf PHP5

Hallo Gemeinde,

ich hatte unter PHP4 eine Anwendung erstellt, die nach verschiedenen Anwendungsschritten die Seite "index.php?expand=3&expand3=1" aufruft.
Aufgrund der Befüllung der Variablen "expand" und "expand3" werden if-Abfragen ausgeführt. Unter PHP4 funktioniert das, unter PHP5 ist die Variable "$expand" leer.
Gleiches gilt, wenn ich in der "index.php" einen Link aufrufe, der "index.php?expand=3&comment=1" heisst. Es werden wiederum if-Abfragen

...if ($expand=="3") {...

getätigt und daraufhin weitere Bestandteile der Page angezeigt.... in PHP4 kein Problem, in PHP5 aufgrund dessen, dass die Variable "$expand" keinen Wert und nicht wie erwartet eine "3" enthält, führt es zu keinerlei Ausführung.

Ich bin leider nicht wirklich vertraut mit Variablen-Verarbeitung in PHP5. Kann mir jemand mit einem Tipp oder sogar ansatzweise mit einer Lösung weiterhelfen?

Viele Grüsse

wuscheck

  1. Hallo Wuscheck.

    Ersetze einfach alle Vorkommen von $expand, $comment, … mit $_GET['expand'], $_GET['comment'], …

    Warum das nötig ist, kannst du im PHP Manual nachlesen.

    Servus,
    Flo

    1. Hello,

      Ersetze einfach alle Vorkommen von $expand, $comment, … mit $_GET['expand'], $_GET['comment'], …

      Das ist ein schlechter Tipp, wenn man ihn so pauschal gibt.

      Ich habe dutzende Scripte umstellen müssen, bei denen die Parameter bunt gemixt durch POST, GET und Cookie kamen und natürlich auch mit sessio_register() gearbeitet wurde.

      Man musste also bei jeder Verwendung der Variable erst einmal schauen, wie sie erzeugt bzw. beschrieben wurde. Und es waren genügend dabei, die auf zwei oder drei Arten bedient wurde. das ist eklig.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
  2. Hi!

    ich hatte unter PHP4 eine Anwendung erstellt, die nach verschiedenen Anwendungsschritten die Seite "index.php?expand=3&expand3=1" aufruft.
    Aufgrund der Befüllung der Variablen "expand" und "expand3" werden if-Abfragen ausgeführt. Unter PHP4 funktioniert das, unter PHP5 ist die Variable "$expand" leer.

    Unter PHP 4 funktioniert das nur deshalb, weil sehr wahrscheinlich und entgegen der Empfehlung register_globals eingeschaltet ist. Stell dein Script auf die Verwendung der Superglobals (in deinem Fall $_GET) um und verlass dich nicht darauf, dass dir PHP aufgrund einer URL Variablen anlegt.

    Lo!