PHP und Windows NT mit IIS 4.0

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP und Windows NT mit IIS 4.0

    Hallo

    Wir haben folgendes Problem:
    Wir haben soeben PHP auf unserem Server installiert. phpinfo() und der Mailversand arbeiten korrekt. Was jedoch nicht funktioniert: Die Datenübergabe von einem HTML-Formular in die PHP-Datei mit der POST- als auch der GET-Methode. Die Daten kommen einfach nicht in der PHP-Datei an. An den beiden Dateien kann es nicht liegen, diese wurden auf 2 anderen Server ausprobiert und funktionieren tadellos. Wer kann uns einen Tipp geben?
    Besten Dank im voraus.
    Borsi

  • #2
    benutzt ihr die Variablen $HTTP_GET_VARS und $HTTP_POST_VARS mit php3?

    Wenn ja, muß track_vars in der php.ini auf 1 oder enabled oder 'on' oder so sein ... (ist so lange her, ich weiß nicht mehr)

    Sonst fällt mir auch nix dazu ein. Aber es wäre sicher hilfreich zu wissen, welchen Server in welcher Version und welche php-Version ihr auf den Servern benutzt ... a) auf denen, auf denen alles klar geht b) auf dem neuen.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Variablenproblem

      Hi Titus

      Die beiden erwähnten Variablen werden nicht verwendet.
      Wir verwenden PHP 4.0.3 und dem IIS 4.0 unter Windows.

      Bei der Übergabe handelt es um stinknormale Variable aus einem HTML-Formular.

      Lokal arbeite ich mit Windows 98, dem Apache Webserver 1.3 und PHP 4.0.2

      Gruss
      Borsi

      Kommentar


      • #4
        ein einfacher Test - erst mal feststellen, ob der Server mitspielt: ein php-Skript mit folgendem Formular erstellen:

        Code:
        <form method="get">
          <input type="checkbox" name="test"<?php if ($test) echo ' checked'; ?> value="1">
          <input type="submit" value="Test">
        </form>
        Wenn die checkbox vor Absenden des Formulars angekreuzt ist, sollte in der Adresszeile ein Parameter (?test=1)
        hinter der eigentlichen url stehen. Wichtig dabei: method="get"!
        action wird nicht benötigt, das Formular referenziert das aktuelle Skript.

        Sind die Parameter bei get nicht in der Adresszeile zu sehen, werden sie schon vor dem Absenden verschluckt.
        Sind sie zu sehen, ist möglicherweise der Server nicht sauber konfiguriert.

        In beiden Fällen kann ich aber leider nicht weiter helfen. Aber die Fehlerquelle ist dann immerhin ein bißchen eingegrenzt.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Hallo Titus

          test2.php?test=1
          Ja, so sieht es aus. Nun denn, suchen wir weiter nach dem Fehler.

          Gruss und vielen Dank!
          Borsi

          Kommentar


          • #6
            Hi

            Du bekommst die Variablen mit

            $Variable = $HTTP_GET_VARS(variblenname)
            bzw.
            $Variable = $HTTP_POST_VARS(variblenname).

            variablenname entspricht dem Namen des Formularfeldes.

            Gruß Fetzbraun



            Kommentar


            • #7
              Wollte ich noch sagen

              Die Variablen $HTTP_GET_VARS und $HTTP_POST_VARS, sind Arrays in denen du die "Stinknormalen Formular Daten" übergeben bekommst! Wenn "track_vars", in der php.ini, nicht auf 1 oder enabled oder 'on' oder so ist, werden sie nicht automatisch in die in PHP üblichen "$Variable" Variablen übernommen.

              Kommentar


              • #8
                Variabelnsache

                Hi Fetzbraun

                Tönt so, als ob wir der Sache doch noch auf den Grund kommen.

                Hier der Eintrag in unserer PHP.INI:

                ;;;;;;;;;;;;;;;;;
                ; Data Handling ;
                ;;;;;;;;;;;;;;;;;
                ; Note - track_vars is ALWAYS enabled as of PHP 4.0.3
                variables_order = "EGPCS" ; This directive describes the order in which PHP registers....

                Also
                track_vars = on
                oder track_var= 1

                und dann sollte die Sache gehen?
                Müssen wir gleich mal ausprobieren.

                Danke
                Borsi

                Kommentar


                • #9
                  variables_order = "EGPCS"

                  E = Environment
                  G = Get
                  P = Post
                  C = Cookie
                  S = Server

                  Kann es sein, daß die Variablen durch Cookies oder Server-Variablen überschrieben werden?
                  Um das heraus zu finden, könnte man kurzfristig die Reihenfolge ändern oder - wenn der Server online ist - mal das Server-Manual studieren. Alternativ auch mal am Anfang des Skripts var_dump($HTTP_GET_VARS); aufrufen; da track_vars bei php4 ja immer eingeschaltet ist, kommt ihr aber über eben diese Variable IMMER an eure Formulardaten.

                  Logischerweise muß für method="post" $HTTP_POST_VARS benutzt werden.
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar


                  • #10
                    Variablen

                    Hallo Titus

                    Wir haben das problem gelöst. Am track_vars Parameter lag es nicht, der war schon auf On.

                    Schon eher am variables_order Befehl. Nach längerem Suche haben wir einen Windowsserver mit funtionierendem PHP gefunden. Hier haben wir dann 4 Parameter geändert, und es lief.

                    Also nochmals vielen Dank für die Hilfe!!!!!!!!
                    Borsi

                    Kommentar

                    Lädt...
                    X