Heidus: Scripte auf register_globals=off umschreiben

Hallo,

ich mußte gerade einige Scripte von einem register_globals=on-Server auf einen off-Server umziehen.
Gibt es eine Hilfe, ein Script oder ein Programm, das einem beim Umschreiben der Scripte hilfreich zur Hand gehen kann?

Na gut, zur Not würde auch schon eine gute Anleitung helfen, die auf Tücken hinweist, damit ich nichts vergesse beim umschreiben.

Viele Grüße, Heidus

  1. Hallo

    Hallo,

    ich mußte gerade einige Scripte von einem register_globals=on-Server auf einen off-Server umziehen.
    Gibt es eine Hilfe, ein Script oder ein Programm, das einem beim Umschreiben der Scripte hilfreich zur Hand gehen kann?

    Na gut, zur Not würde auch schon eine gute Anleitung helfen, die auf Tücken hinweist, damit ich nichts vergesse beim umschreiben.

    Auch schon? ;-)

    Wo vorher Variablen automatisch mit übergebenen Werten gefüllt wurden, z.B. bekam $name aus einer URL (http://example.com?name=Willy) automatisch den Wert des Parameters "name" (Willy) (der Wert hätte aber ohne dass du das weißt, aus anderer Quelle stammen können), wird mit register_globals=off explizit auf die Quelle abgestellt. Wenn ein Wert mit GET oder POST übermittelt werden soll, steht er im superglobalen Array[1] $_GET bzw. $_POST, also in $_GET["name"] bzw. $_POST["name"].

    Weiterhin stehen die Arrays $_SESSION und $_COOKIE für (auch indirekte) Benutzereingaben zur Verfügung. Die Prüfung derselben bleibt davon natürlich unbelassen.

    [1] Die superglobalen kannst du in jeder Funktion, ohne umkopieren und ohne die Verwendung von global, direkt verwenden. Neben den genannten gibt es noch $_SERVER, $_ENV, $_REQUEST ...

    Zu $_REQUEST wäre noch zu sagen, dass es die Werte von $_GET, $_POST, $_SESSION und $_COOKIE in sich vereinigt, seine Verwendung aber den Vorteil der Quellsicherheit aufgibt.

    Tschö, Auge

    --
    Die deutschen Interessen werden am Liechtenstein verteidigt.
    Veranstaltungsdatenbank Vdb 0.2
  2. Hello,

    ich mußte gerade einige Scripte von einem register_globals=on-Server auf einen off-Server umziehen.
    Gibt es eine Hilfe, ein Script oder ein Programm, das einem beim Umschreiben der Scripte hilfreich zur Hand gehen kann?

    Das Umschreiben ist eklig.
    Meistensmuss ja auch noch von session_register() auf $_SESSION umgestellt werden und die "Long-Arrays", also $HTTP_*_VARS, müssen auch noch ersetzt werden.

    Das kann recht aufwändig werden. Ich habe mich auch schon ein paarmal damit herumgeschlagen und bisher kein Hilfsprogramm ausfindig machen können.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. Hi,

    schlechte Lösung:

       extract($_REQUEST);  
       // am Anfang von jedem Script
    

    besserer Ansatz:

     <?php  
       $expectedvar = $_GET["expectedvar"];  
       $formfield2 = $_REQUEST["formfield2"];  
       // sichere Methode, da nur erwartete Parameter importiert werden
    

    Mit beiden Wegen ersparst du dir das mühsame Umschreiben aller
    $altvariablen-Referenzen in $_REQUEST["..."]. Die zweite Methode
    ist wirklich empfehlenswert, und der eigentliche Hintergrund für
    die Einführung von register_globals=off. (Später könntest du hier
    noch sehr einfach filter_() oder preg_replace() einfügen...)

    Grüße.

    1. [latex]Mae  govannen![/latex]

      besserer Ansatz:

      <?php

      $expectedvar = $_GET["expectedvar"];
         $formfield2 = $_REQUEST["formfield2"];
         // sichere Methode, da nur erwartete Parameter importiert werden

        
      Dazu muß man aber erst alle Variablen feststellen, die vorher automatisch befüllt wurden, was wohl zumindest bei größeren Projekten das Hauptproblem sein wird. Und wenn man ohnehin alle Variablen rauskramen muß, kann man sie auch direkt überall mit dateiübegreifendem Suchen&Ersetzen durch die entsprechendenen neuen Werte ersetzen.  
        
      Cü,  
        
      Kai
      
      -- 
      Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul  
        
      Sacrifice - the future has it's price  
      And today is only yesterday's tomorrow  
        
      selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?