André S.: PHP auf Windows - keine Variablen werden angenommen

N'abend,

ich habe mir soeben PHP auf meinem Heimrechner installiert. Genauer
gesagt die Version 4.3.1. Als Webserver habe ich den Apache in der
Version 2.0.46 am laufen. Als MySQL Server nehme ich extern den
von meinem "wirklichen" Webserver. Das funktioniert auch weit-
gehend prima, aber mein Problem.

Es werden keine angegeben Variablen übernommen :(.. Ein kleines
Beispiel:

index.php?text=hallo

Im Script:

<?
echo $text
?>

Ausgabe bleibt leer, er nimmt also die Variable nicht an. Es sieht
so als, als würde keine übergeben werden.

Habe ich etwas falsch konfiguriert, oder funktioniert das in dieser
PHP Version grundsätzlich nicht? :(

Danke für eure Antworten :)

bye. andre

  1. Sorry, hab den Fehler gefunden *g*.. Hatte register_globals noch
    nicht eingeschaltet.. *sorry*

  2. Hallo

    [PHP] Version 4.3.1.

    Es werden keine angegeben Variablen übernommen :(.. Ein kleines
    Beispiel:

    index.php?text=hallo

    <?
    echo $text
    ?>

    Habe ich etwas falsch konfiguriert, oder funktioniert das in dieser
    PHP Version grundsätzlich nicht? :(

    In den neueren Versionen von PHP ist die globale Übergabe von Variablen
    an das nächste Skript aus Sicherheitsgründen abgeschaltet.
    Du kannst dies in der php.ini bei register_globals: wieder zuschalten,
    was aber _keinesfalls_ empfehlenswert ist.

    Auf Deine Variable $text kannst Du so zugreifen: $_GET["text"]

    Nach gleichem Verfahren bei post: $_POST["text"], bei Session: $_SESSION["text"],
    etc. pp.. Damit wird zumindest sichergestellt, daß die Variable nur auf dem
    gewünschten Wege übergeben wurde. Eine genauere Prüfung (z.B. ist es eine Zahl
    oder ein String mußt Du sowieso selber vornehmen).

    zu register_globals: http://www.php.net/manual/de/security.registerglobals.php

    Tschö, Auge

    1. hi,

      (wo hast du denn die letzten Wochen gesteckt ...)

      Du kannst dies in der php.ini bei register_globals: wieder zuschalten,
      was aber _keinesfalls_ empfehlenswert ist.

      Kannst du eine Begründung für deine apodiktische Aussage
        _keinesfalls_
      nachliefern? Wir haben mehrfach ähnlich gelagerte Anfragen in letzter Zeit gehabt, und der Hinweis auf "register_globals" kam bisher immer ohne jegliche Warnung, daß daran etwas riskant sein könnte.

      zu register_globals: http://www.php.net/manual/de/security.registerglobals.php

      Naja, mal abgesehen davon, daß Syntax und Grammatik bei dieser Adresse nicht ganz geglückt sind: eine Sicherheitswarnung kann ich dort nicht erkennen.

      Grüße aus Berlin

      Christoph S.

      1. Hallo Christoph

        Du kannst dies in der php.ini bei register_globals: wieder zuschalten,
        was aber _keinesfalls_ empfehlenswert ist.
        Kannst du eine Begründung für deine apodiktische Aussage
          _keinesfalls_
        nachliefern? Wir haben mehrfach ähnlich gelagerte Anfragen in letzter Zeit gehabt, und der Hinweis auf "register_globals" kam bisher immer ohne jegliche Warnung, daß daran etwas riskant sein könnte.

        Falls register_globals auf on ist, *könnte* ein Angreifer eventuell normale Variablen im Script manipulieren. Bei einer sauberen Initialisierung der Variablen und ansonsten meistens auch, ist das aber in der Realität auch bei register_globals = off eigentlich nur eine hypothethische Einbruchsmöglichkeit.

        zu register_globals: http://www.php.net/manual/de/security.registerglobals.php
        Naja, mal abgesehen davon, daß Syntax und Grammatik bei dieser Adresse nicht ganz geglückt sind: eine Sicherheitswarnung kann ich dort nicht erkennen.

        Nicht?

        "Ein Feature von PHP zur Erhöhung der Sicherheit ist die Konfiguration von PHP mit register_globals = off. Mit Deaktivierung der Möglichkeit, irgendeine vom Benutzer übertragenen Variable in den PHP Code zu injizieren..."

        Besonders den letzten Satzteil würde zumindest ich als Warnung verstehen.

        Schöne Grüße

        Johannes

        --
        ss:| zu:) ls:[ fo:) de:] va:) ch:? sh:( n4:& rl:( br:< js:| ie:{ fl:( mo:}
      2. Hallo

        (wo hast du denn die letzten Wochen gesteckt ...)

        Urlaub, Arbeitsamt, viel zu tun. ;-)

        Du kannst dies in der php.ini bei register_globals: wieder zuschalten,
        was aber _keinesfalls_ empfehlenswert ist.
        Kannst du eine Begründung für deine apodiktische Aussage
          _keinesfalls_
        nachliefern? Wir haben mehrfach ähnlich gelagerte Anfragen in letzter Zeit gehabt, und der Hinweis auf "register_globals" kam bisher immer ohne jegliche Warnung, daß daran etwas riskant sein könnte.

        Wenn ich's genau überleg': Läuft PHP auf _meinem_ Rechner (ohne Zugriff
        von Außen), ist es egal, läuft es bei meinem Hoster habe ich keinen Einfluß
        darauf. Dennoch, und das steht auch auf der unten verlinkten Seite, ist die
        Einstellung "register_globals:off" ein Sicherheitsfeature (Einleitung der Seite).

        Damit kann zumindest die Art der Übertragung einer Variable geprüft werden,
        sprich, wenn Daten aus einem Post-Formular kommen sollen, kann geprüft werden,
        ob sie auch wirklich mit _dieser_ Methode übertragen wurden.

        Aber was red' ich, ... _das_ ist ja wohl bekannt. ;-)

        zu register_globals: http://www.php.net/manual/de/security.registerglobals.php
        Naja, mal abgesehen davon, daß Syntax und Grammatik bei dieser Adresse nicht ganz geglückt sind: eine Sicherheitswarnung kann ich dort nicht erkennen.

        Der Link war ja auch als Einführung für die Gründe der standardmäßigen
        Umstellung dieser Einstellung gedacht.

        Grüße aus Berlin

        Christoph S.

        Grüße aus Berlin (Oberfriedrichshain) nach Berlin :-)

        Tschö, Auge

    2. In den neueren Versionen von PHP ist die globale Übergabe von Variablen
      an das nächste Skript aus Sicherheitsgründen abgeschaltet.
      Du kannst dies in der php.ini bei register_globals: wieder zuschalten,
      was aber _keinesfalls_ empfehlenswert ist.

      Ja das habe ich bei einem Blick in die php.ini auch schon bemerkt, leider hatte ich da diesen Thread schon gepostet ;)

      Nun ja, ich habe vor zwei Jahren eine etwas komplexere Community-
      Software geschrieben, da musste ich mit den "normalen" Variablen arbeiten. Ich habe jetzt auch keine Lust (geschweige denn Zeit *g*), um diese Sachen zu ändern. Es funktioniert ja auch so ;) Aber vielen Dank für deinen Hinweis.

      bye. andre