Listenwerte werden nicht an variable übergeben

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

  • Listenwerte werden nicht an variable übergeben

    Hallo Zusammen,
    bin mittlerweile schon paar Stunden online und suche erfolglos nach einer Lösung. Ich hab auch im Handbuch nachgelesen und werd daraus nicht schlau.

    Vielleicht kann mir jemand sagen, warum k_anrede nicht übermittelt wird oder was ich falsch mache. Im vorab register_globals=on !!
    Ich hab hier den Code etwas gekürzt:

    echo"<form action='bestell.php?k_anrede=$k_anrede&k_nachname=$k_nachname&k_vorname=$k_vorname&k_str=$k_str&k_pl z=$k_plz&k_ort=$k_ort&k_email=$k_email&PHPSESSID=$PHPSESSID&zart=$zart' method=post>";
    echo "<table>";
    echo "<tr>";
    echo"<td>Anrede</td>";
    echo "<td>";

    // HIER MUSS ICH IRGENDWAS FALSCH MACHEN:

    echo "<select name='k_anrede'>"; //value='$k_anrede'
    echo "<option value='Herr'>Herr</option>";
    echo "<option value='Frau'>Frau</option>";
    echo "<option value='Firma'>Firma</option>";
    echo "</select></td>";
    echo"</tr>";

    echo"<tr>";
    echo"<td>Name</td>";
    echo"<td><input type='text' SIZE=25 name='k_nachname' value=$k_nachname></td>";
    echo"</tr>";

    // usw.

    echo"<tr>";
    echo"<td><input type=submit class='button' value=abschicken name=versand></td>";
    echo "<td align=right><input type='reset' name='Reset' value='löschen' name=B2></td>";
    echo"</tr>";
    echo"</table>";
    echo"</form>";

  • #2
    PHP-Code:
    echo"<form action='bestell.php?k_anrede=$k_anrede&k_nachname=$k_nachname&k_vorname=$k_vorname&k_str=$k_str&k_plz=$k_plz&k_ort=$k_ort&k_email=$k_email&PHPSESSID=$PHPSESSID&zart=$zart' method=post>"
    Was soll das denn sein?
    Du weißt schon, dass PHP die Variablen da einsetzt, bevor das an den Browser des Besuchers verschickt wird, oder ?

    Folglich wird jede dieser Variablen, für die du keinen Wert definiert hast leer sein, dein Formular wird also etwa an die Adresse
    bestell.php?k_anrede=&k_nachname=&k_vorname=&k_str=&k_plz=&k_ort=&k_email=&PHPSESSID=[---irgendein Wert--]&zart=
    verschickt. Dadurch werden alle Variablen aus dem Formular mit leeren Werten überschrieben (da du ja register_globals on hast).

    Schick dein Formular einfach nur an bestell.php?PHPSESSID=$PHPSESSID und schau mal, was dabei rauskommt.

    Gewöhn dir besser ab, große Teile von HTML über echo auszugeben, dafür gibt es nämlich ?> und <?

    Außerdem solltest du in Zukunft beim Posten von PHP-Code vor den Code einmal [ PHP] und hinter den Code einmal [ /PHP] (ohne die Leerstelle nach dem [ ) schreiben, dann kann man das besser lesen.
    hopka.net!

    Kommentar


    • #3
      Herzlichen Dank !!!

      Mit deinem Vorschlag funktionierts 100%ig!

      Super von dir, das du mir geholfen hast.

      Allerdings wenn ich von bestell.php mit einen Header(Location ...
      zurückgehen will, dann muss ich die Zahlen/Werte-Paar ranhängen, damit der user nicht jeden Eintrag von vorne beginnen muss, wenn nach einer Prüfung festgestellt wurde, dass ein Formularfeld nicht ausgefüllt wurde.


      Warum - es macht doch keinen Unterschied, oder?
      "Gewöhn dir besser ab, große Teile von HTML über echo auszugeben, dafür gibt es nämlich ?> und <? "

      Sorry, das ich beim Posten <?php ?> vergessen hab.

      Viele Grüße
      fan-maec


      __________________

      Kommentar


      • #4
        Original geschrieben von fan-maec

        Warum - es macht doch keinen Unterschied, oder?
        "Gewöhn dir besser ab, große Teile von HTML über echo auszugeben, dafür gibt es nämlich ?> und <? "
        Hmm, finde ich schon, schau doch mal:
        PHP-Code:
        <?
        php_funktion("blablabla");
        echo "<html>";
        echo "<head>";
        echo "<title>Testseite</title>";
        echo "</head>";
        echo "<body bgolor=\"#FFFFFF\" text=\"#000000\">";
        $variable = "noch mehr bla";
        ?>
        und das hier:
        PHP-Code:
        <?
        php_funktion("blablabla");
        ?>
        <html>
        <head>
        <title>Testseite</title>
        </head>
        <body bgcolor="#FFFFFF" text="#000000">
        <?
        $variable = "noch mehr bla";
        ?>
        ist um einiges übersichtlicher und sauberer finde ich.

        Übrigens kriegt man das bunte PHP hier, indem du hinter dein PHP-Code [/PHP] schreibst und davor [PHP], und das ist für andere Leute auch viel einfacher zu lesen.
        hopka.net!

        Kommentar


        • #5
          Dein Argument hat mich nicht "so besonders" überzeugt.
          PHP-Code:
          php_funktion("blablabla");
          echo 
          "<html>";
          echo 
          "<head>";
          echo 
          "<title>Testseite</title>";
          echo 
          "</head>";

          echo 
          "<body bgolor='#FFFFFF'  text='#000000'>";

          $variable "noch mehr bla"
          Ausser den echo ist doch nicht viel um und ich bleib innerhalb PHP.
          Denke, auch bei while Schleifen musst du dann
          <?php end while ?> schreiben, was ich nicht brauch, wenn ich rein in PHP bleibe.

          Danke für den Tip wegen dem Bunten.

          Kommentar


          • #6
            Original geschrieben von fan-maec
            Ausser den echo ist doch nicht viel um
            das ist z.b ein argument für hopkas methode.

            wenn du mit echo ausgibst, muss jeder string noch auf das vorkommen von variablen geprüft werden.
            bei einem reinen html-bereich zwischen ?> ... <? entfällt diese überprüfung, es ist also geringfügig schneller ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von wahsaga
              wenn du mit echo ausgibst, muss jeder string noch auf das vorkommen von variablen geprüft werden.
              bei einem reinen html-bereich zwischen ?> ... <? entfällt diese überprüfung, es ist also geringfügig schneller ...
              stimmt für
              PHP-Code:
              echo "ganz viel text"
              stimmt nicht für
              PHP-Code:
              echo 'ganz viel text'
              und schon wären wir bei der nächsten frage:

              wenn ich oft zwischen html und php wechsle, wird die seite dann nicht langsamer, weil der parser immer wieder abschnittsweise angeworfen werden muss?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar

              Lädt...
              X