Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] $_POST funktioniert in php5 nicht

Einklappen

Neue Werbung 2019

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

  • [Erledigt] $_POST funktioniert in php5 nicht

    Hallo,

    ich habe leider inzwischen php5 auf meinem Server laufen. Seitdem gibt es bei einem Script probleme. In einem Formular können bis zu 100 Variablen eingegeben werden(leider so viele). Bisher habe ich daher folgende Funktion bei der Übernahme durch php geschrieben:
    PHP-Code:
    for($i 1$i 104$i++)
        {
        
    $Nummer[] = $_REQUEST["Nummer$i"];  
        } 
    $_REQUEST ist sicherlich überaltert. Ich hätte statt der Funktion auch folgendes schreiben können:

    PHP-Code:
    $Nummer1 $_REQUEST["Nummer1"];
    $Nummer2 $_REQUEST["Nummer2"];
    $Nummer3 $_REQUEST["Nummer3"]; 
    Dazu war ich aber bei 100 Variablen zu faul. Bei php5 funktioniert das so aber nicht. Daher habe ich folgendes versucht:

    PHP-Code:
    for($i 1$i 104$i++)
        {
        
    $Nummer[] = $_POST['Nummer.$i'];  
        } 
    Leider funktioniert das nicht. Ich weiss, man sollte die Grundlagen lernen. Aber leider verstehe ich das nicht nicht. Hat vielleicht jemand eine Idee???

    Entschuldigt die wahrscheinlich dumme Frage.

    Beste Grüße,

    der timo

  • #2
    ich habe leider inzwischen php5 auf meinem Server laufen.
    Das gibt es ja auch erst seit viereinhalb Jahren. Aber Vista ist ja auch doof.

    Ich weiß ehrlich gesagt nicht, was du erreichen willst. Wieso schreibst du alle $_POST- und $_REQEST-Variablen um? Willst du register_globals nachprogrammieren oder was hast du vor? In PHP 5 kannst du ganz normal auf $_REQUEST, $_POST, $_GET und $_COOKIE zugreifen.

    Kommentar


    • #3
      Und wieso nennst du die Variablen "NummerX" ?? Wieso machst du nicht ein Array daraus? Wäre doch wesentlich einfacher damit zu arbeiten.

      Kommentar


      • #4
        Ich glaube mittlerweile wirklich, dass er register_globals nachprogrammieren will und denkt, es sei eine schlechte Angewohnheit des neuen und verkommenen PHP 5, dass alle Vorteile von PHP 4 einfach so zunichte macht (Achtung, Ironie!), dass das standardmäßig nicht funktioniert.
        Wenn dem so ist, dann bitte unbedingt dies lesen: OpenWebBoard / Tutorials / PHP & MySQL / RegisterGlobals, was ist das?

        Kommentar


        • #5
          Zitat von Inchie Beitrag anzeigen
          Hallo,
          PHP-Code:
          for($i 1$i 104$i++)
              {
              
          $Nummer[] = $_POST['Nummer.$i'];  
              } 
          Leider funktioniert das nicht. Ich weiss, man sollte die Grundlagen lernen. Aber leider verstehe ich das nicht nicht. Hat vielleicht jemand eine Idee???

          Entschuldigt die wahrscheinlich dumme Frage.

          Beste Grüße,

          der timo
          In deinem Fall betrachte das Quoting, expliziert was den Unterschied zwische Single- und Double-Quote betrifft PHP: Strings - Manual

          Kommentar


          • #6
            Zitat von Flor1an Beitrag anzeigen
            Und wieso nennst du die Variablen "NummerX" ?? Wieso machst du nicht ein Array daraus? Wäre doch wesentlich einfacher damit zu arbeiten.
            Genau das schlage ich auch vor.

            Zum Ausprobieren
            PHP-Code:
            <html>
              <head><title>...</title></head>
              <body>
                <?php
                
            if ( isset($_POST['Nummer']) && is_array($_POST['Nummer']) ) {
                  echo 
            '<fieldset><legend>_POST[Nummer]</legend>';
                  foreach(
            $_POST['Nummer'] as $n) {
                    echo 
            $n"<br />\n";
                  }
                  echo 
            '</fieldset>';
                }
                
            ?>
                <form method="post" action="?">
                  <div>
                    <input type="text" name="Nummer[]" value="1" />
                    <input type="text" name="Nummer[]" value="2" />
                    <input type="text" name="Nummer[]" value="3" />
                    <input type="text" name="Nummer[]" value="4" />
                    <input type="text" name="Nummer[]" value="5" />
                    <input type="text" name="Nummer[]" value="6" />
                    <br />
                    <input type="submit" />
                  </div>
                </form>
              </body>
            </html>

            Kommentar


            • #7
              ok ihr habt ja alle recht. Allerdings wäre ich sehr dankbar, wenn ich die Fähigkeit hätte die register_globals nachzuprogrammieren . Mein Problem lag an einer anderen Stelle. Mein Formular das ich verwende war super alt. in diesem war folgendes angegeben:

              PHP-Code:
              <form method="post" action="?"
                    <
              div
                      <
              input type="text" name="Nummer1"  /> 
                      <
              input type="text" name="Nummer2"  /> 
                      <
              input type="text" name="Nummer3"  /> 
                      <
              input type="text" name="Nummer4"  /> 
                      <
              input type="text" name="Nummer5"  /> 
                      <
              input type="text" name="Nummer6"  /> 
                      <
              br /> 
                      <
              input type="submit" /> 
                    </
              div
                  </
              form
                </
              body
              </
              html
              Diese Informationen habe ich in eine Datenbank ein getragen. Daher:

              PHP-Code:
              $Nummer1 $_REQUEST["Nummer1"];
              $Nummer2 $_REQUEST["Nummer2"];
              $Nummer3 $_REQUEST["Nummer3"];  usw
              Das war mein erstes Script (das heisst nicht das ich das heute besser kann). So auf jeden Fall vielen Dank an die vielen Antworten. Insbesondere der Post von David hat selbst mich erleuchtet!!!!! Danke

              Beste Grüße,

              timo

              Kommentar


              • #8
                Allerdings wäre ich sehr dankbar, wenn ich die Fähigkeit hätte die register_globals nachzuprogrammieren
                Dafür kann man [man]extract[/man]() misbrauchen. Sollte man allerdings nicht, gerade nicht bei neu zu schreibendem Code.
                Zitat von http://de.php.net/manual/en/function.extract.php
                Warning

                Do not use extract() on untrusted data, like user-input ($_GET, ...). If you do, for example, if you want to run old code that relies on register_globals temporarily, make sure you use one of the non-overwriting extract_type values such as EXTR_SKIP and be aware that you should extract in the same order that's defined in variables_order within the php.ini.

                Kommentar

                Lädt...
                X