Formulardaten auslesen - aber wie am besten ?

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

  • Formulardaten auslesen - aber wie am besten ?

    Wie lese ich am besten und sichersten Formulardaten aus ?

    1. Möglichkeit : '$Formularfeld'
    Soll nicht mehr verwendet werden..so sag man. Falls register_globals abgeschaltet ist.

    2. Möglichkeit : '$HTTP_GET_VARS'
    Benutzen einige hier. Aber irgendwie würde das auch nicht funktionieren wenn track_vars ausgeschaltet ist. Ist das nicht gleiche wie oben ?

    3. Möglichkeit : $_GET ???
    Soweit ich es verstehe wir der HTTP Header ausgelesen..oder liege ich da falsch ?

    Für Rat und Hilfe bin ich dankbar..mache mal keine Umfrage draus..würde mich um kommentierte Beiträge freuen.

  • #2
    Bei PHP mußt du nichts speziell machen, um Formulardaten zu auszulesen:
    <input type=text name=feld1>

    Nach Übergabe an ein PHP-Script:
    echo $feld1

    und der Inhalt deines Formularfeldes ist da ...
    Immer erst mal gucken, ob Benzin im Tank ist ...

    Kommentar


    • #3
      besser ist:
      $HTTP_POST_VARS["feld1"]
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        hmm,

        stimmt Mello Pies Wahl ist die Zukunkftssicherere da standardmässig ab php4.1.0 die register_globals = off ist defaultmässig in der php.ini . Darum sollte man HTTP_POST_VARS verwenden.

        Kommentar


        • #5
          $_POST

          ersetze $HTTP_POST_VARS durch $_POST - dann hast du nicht so viel zu tippen.
          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


          • #6
            kurze Frage:

            also macht
            <input type=text name=feld1>

            GENAU das selbe wie

            <input type=text name=$HTTP_POST_VARS["feld1"]>



            und es ist die zukunkftssicherere Methode ?

            Kommentar


            • #7
              hmm,

              neee, im Formular ändert sich nixhts , das bleibt name=feld1

              Nur im php Script. $HTTP_POST_VARS sind Serverumgebungsvariablen, diese sind immer da , die einfach Version kann man nur nehmen wenn in der php.ini register_globals = on steht, dies ist aber nimemr der default wert seit 4.1.0. also ist es sicherer die Umgebungsvariable zu nahmen.

              Kommentar


              • #8
                danke für die Antwort JoelH


                echo "<input type=\"text\" name=$HTTP_POST_VARS[\"feld1\"]> ";

                so ???

                wollt ich vorhin eigentlich auch nur wissen

                Kommentar


                • #9
                  Nein..
                  ..das benutzt du nur wenn du die übergegebene Daten aus dem Formular auslesen willst

                  also so :
                  <?php
                  $input_inhalt = $HTTP_POST_VARS[feld];
                  ?>

                  wobei das formular so aussieht :

                  <input type=text name=feld1>

                  Eine weitere Frage : Enthält HTTP_POST_VARS nur die mit POST übergebenen Variablen ?

                  Kommentar


                  • #10
                    Ich würde voll auf $_REQUEST, $_GET, $_POST ... setzen.
                    Bei PHP Versionen von 4.1 (IF Abfrage) füllt man $_REQUEST, $_GET, $_POST mit den Daten aus den alten Arrays.

                    Aber $_REQUEST ist schon praktisch.
                    $_REQUEST enthält alle Daten aus GET,POST,COOKIE,SESSION ...
                    $_GET dagegen nur Daten, die per GET übertragen wurden.
                    $_POST nur Daten, die per POST übertragen wurden.

                    Siehe dazu:
                    http://www.php3.de/manual/en/languag...predefined.php
                    http://www.php3.de/manual/en/reserved.variables.php
                    Zuletzt geändert von Troublegum; 13.05.2002, 16:23.
                    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                    © Harald Schmidt

                    Kommentar


                    • #11
                      hmm,

                      so ist es !

                      Kann man sich immer schön mit phpinfo(); anzeigen lassen was so übergeben wird.

                      Kommentar


                      • #12
                        Original geschrieben von Troublegum
                        Ich würde voll auf $_REQUEST, $_GET, $_POST ... setzen.
                        Nur scheisse ist wenn der Server noch auf 4.0.6 läuft. Dann bricht der ganze Code zusammen. Man kann ja nicht sofort erwarten, dass alle sofort upgraden..ist auch eine Kostenfrage.
                        Ich setze da eher erstmal auf HTTP_POST_VARS..mag zwar ein Auslaufsmodell sein, aber ich kann mir sicher sein dass es überall läuft. Später kann man ja per Suchen und ersetzen HTTP_POST_VARS durch _POST ersetzen.

                        Kommentar


                        • #13
                          $_GET, $_POST ...

                          sparen auf jeden Fall erstmal die lästige GLOBAL-Deklaration innerhalb von Funktionen ausserdem sind diese Variablen dann eine Referenz auf die Globalen Werten wärend $HTTP_GET_VARS usw. da über GLOBAL deklariert nur eine Kopie dieser Werte sind.
                          carpe noctem

                          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                          Kommentar


                          • #14
                            Original geschrieben von goth
                            ... ausserdem sind diese Variablen dann eine Referenz auf die Globalen Werten wärend $HTTP_GET_VARS usw. da über GLOBAL deklariert nur eine Kopie dieser Werte sind.
                            ähm ... nö.
                            global erstellt auch Referenzen. Es macht die globalen Variablen in der Funktion voll verfügbar, also Lese- und Schreibzugriff.
                            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


                            • #15
                              Original geschrieben von Titus
                              ähm ... nö.
                              global erstellt auch Referenzen. Es macht die globalen Variablen in der Funktion voll verfügbar, also Lese- und Schreibzugriff.
                              Dann probiere das mal Rekursiv ... oder mit gestackten Funktionen ...

                              das funzt nicht ... weil GLOBAL zu Beginn der Funktion 'ne Kopie anlegt und diese am ende zurück kopiert ... ich hatte das Problem mal mit $HTTP_SESSION_VARS

                              Sample (Ausschnitt):
                              PHP-Code:

                              function fkt1() {
                                GLOBAL 
                              $HTTP_SESSION_VARS;

                                 
                              fkt2();

                                 
                              // hier passt der Wert nicht!!
                                 
                              echo $HTTP_SESSION_VARS["test"];
                              }

                              function 
                              fkt2() {
                                 GLOBAL 
                              $HTTP_SESSION_VARS;

                                 
                              $HTTP_SESSION_VARS["test"]=2;

                                 
                              // hier passt der Wert
                                 
                              echo $HTTP_SESSION_VARS["test"];
                              }

                              $HTTP_SESSION_VARS["test"]=1;
                              fkt1();

                              // hier passt der Wert
                              echo $HTTP_SESSION_VARS["test"]; 
                              Wurde im PHP-Bug-Report bestätigt mit der Empfehlung $_SESSION zu verwenden!
                              carpe noctem

                              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                              Kommentar

                              Lädt...
                              X