PHP: Get und Postübergabe funktioniert nicht



  • Hi Leute

    Ich habe kürzlich auf meinen Linuxsystem Apache und Php installiert.
    Leider kann aus irgendeinen mir nicht verständlichen Grund Php keine Variablien an ein anderes Scripts weitergeben.
    Zum Beispiel wenn ich folgendes aufrufen würde 'script.php?wert=blabla&wertb=blub' würden die zwei werte blabla und blub nicht an das Script übergeben werden.

    Woran kann das liegen?? Die Php.ini habe ich so konfiguriert, wie ich es auch unter Windows getan habe.



  • Kann es sein, dass du über $wert bzw. $wertb darauf zugreifst? Das funktioniert nämlich nur, wenn register_globals auf true ist (was in neueren Versionen au Sicherheitsgründen defaultmäßig nicht mehr der Fall ist).
    Falls du PHP >= 4.1.0 einsetzt kannst du über $_GET['wert'] und $_GET['wertb'] auf die Daten zugreifen
    wenn du eine ältere Version hast (was wohl eher nicht der Fall sein wird), dann nimm das $HTTP_GET_VARS Array 🙂



  • Jau, Danke! Das wars!

    Mit $_GET[] funktioniert es bestens.
    register_globals stand zwar auf ON, aber wieso es nicht funktionierte ist mir jetzt auch egal. Da ich jetzt auf die $_GET[] Version umsteigen werden.

    cu, DerSeher



  • Dann hast du wohl versucht innerhalb einer Funktion darauf zuzugreifen ohne die Variablen vorher global zu machen 🙄
    Aber $_GET, $_POST, $_COOKIE, $_REQUEST & Co. sind eh viel besser 😋



  • Wenn ein Provider die register_globals ausgeschaltet hat, und man möchte (was aber mal echt Dummheit is) doch mit den globals wie auf On arbeiten, reichts, gleich zu beginn einmal

    extract( $_REQUEST );
    

    aufzurufen.

    Die Funktion sollte ungefähr sowas sein, wie

    function auspacken ($variable)
    {
        if( !is_array( $variable ))
            return FALSE;
    
        foreach( $variable as $key => $element )
            global ${$key} = $element;
    
        return TRUE;
    }
    

Anmelden zum Antworten