Problem mit Formular, kein Empfang der Variablen?

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

  • Problem mit Formular, kein Empfang der Variablen?

    Hi @ all,

    Ich habe das Problem dass ich in meinem kleinen Script nach dem ändern der Daten und dem Drücken auf senden, nicht in die if-Schleife komme und somit auch die Daten nicht aktualisiert werden.

    Hier der Auszug aus dem Script:

    PHP-Code:
    <? 
        error_reporting(E_ALL);
        include "config.php"; 
        $sql = 'SELECT ID, Datum, Host
                FROM lan';
        $res = mysql_query($sql) or die(mysql_error());

    //Update
    if(isset($HTTP_POST_VARS['senden']) && $HTTP_POST_VARS['senden']=="senden")
        {
        echo "JA!";
        $sqlset = "
                UPDATE 
                Datum, Host
                   SET
                Datum = '$HTTP_POST_VARS[Datum]',
                Host = '$HTTP_POST_VARS[Host]'
                WHERE
                        ID = '$HTTP_POST_VARS[ID]'";
                mysql_query($sqlset) OR die(mysql_error());
                echo "Ihre Daten wurde gespeichert!";
        }
    else
        {
    //Anzeige
    echo "<table border=\"0\" cellspacing=\"2\" cellpadding=\"3\" align=\"left\">";
    echo "<tr>";
    echo "<td width=\"110\"><SPAN class=\"text\"><b>Datum</b></SPAN></td>";
    echo "<td width=\"110\"><SPAN class=\"text\"><b>Host</b></SPAN></td>";

    echo "<td width=\"110\"><SPAN class=\"text\"><b>Aendern</b></SPAN></td>";
    echo "</tr>";
    while ($test = mysql_fetch_array($res))
            {
    echo '<tr><form action="'.$_SERVER["PHP_SELF"].'">';
    echo '<td width="10">'.$test['ID'].'</td>';
    echo '<td width="120"><textarea name="Datum" rows="5">'.$test['Datum'].'</textarea></td>';
    echo '<td align="120"><textarea name="Host" rows="5">'.$test['Host'].'</textarea></td>';

    echo '<td width="120"><input type="Submit" name="senden" value="senden"></td>';
    echo '<input name="'.$test['ID'].'" type="hidden" value="'.$test['ID'].'"></form></tr>';
            }
            echo "</table><BR><BR><BR>";
        }
    ?>
    Ich hoffe ich habe nicht zuviel ausgelassen beim Posten des Codes...

    Vielen Dank schonmal für eure Hilfe!

    CyA Takeliner
    Zuletzt geändert von Takeliner; 13.06.2006, 19:29.

  • #2
    $HTTP_POST_VARS ist veraltet, nimm mal $_POST

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hi,

      Hatte ich vorher, hatte nichts gebracht.

      PS: Ist das normal, dass ich in der Browserleiste dann immer die ganzen Variablen stehen habe nachdem ich auf Senden gedrückt habe und die Seite wieder da ist???

      PS: Das ist die URL

      Code:
      lanadmin.php?Datum=01.09.2006&Host=Andre&senden=senden&1=1
      ???

      CyA Takeliner

      Kommentar


      • #4
        Nimm $_POST

        Schreibe method="post" in dein Formular.
        Wenn du das nicht machst, wird standardmäßig GET verwendet, was zur Folge hat, dass in $_POST nichts steht und dass alle Eingabefelder im Formular in der URL auftauchen
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Als ich method="post" gelesen habe fing mein Augenlied an zu zucken. Das gibs doch net, habsch das vergessen. *schäm*

          Aber vielen Dank!!!!

          CyA Takeliner

          Kommentar


          • #6
            Ich habe wieder einen Fehler.

            Notice: Undefined index: ID in C:\xampplite\htdocs\lan\lanadmin.php on line 27

            Soweit ich herausgefunden habe,
            ist irgendetwas bzw. irgendwo mit dan Anführungszeichen nicht in Ordnung.
            Habe jedoch schon jede menge Varianten ausprobiert, ohne erfolg.
            Hier die Zeilen 26,27,28:
            PHP-Code:
            WHERE
                                ID 
            '$_POST[ID]'";
                        mysql_query(
            $sqlset) OR die(mysql_error()); 
            Irgendwas ist mit $_POST[ID] anscheinend nicht ok


            Hier der Code:

            PHP-Code:
            <? 
                error_reporting(E_ALL);
                include "config.php"; 
                $sql = 'SELECT ID, Datum, Host, Spieler, Spiele, Besonderheiten, Inhalt 
                        FROM lan';
                $res = mysql_query($sql) or die(mysql_error());

            //Prüfung auf Update
            if(isset($_POST['senden']) && $_POST['senden']=="senden")
                {
                echo "JA!";
                    if(!empty($_POST['ID']))
                        {
                        echo $_POST['ID'];
                        }
                $sqlset = "
                        UPDATE 
                                lan
                           SET
                                Datum = '$_POST[Datum]',
                                Host = '$_POST[Host]',
                                Spieler = '$_POST[Spieler]',
                                Spiele = '$_POST[Spiele]',
                                Besonderheiten = '$_POST[Besonderheiten]',
                                Inhalt = '$_POST[Inhalt]'
                        WHERE
                                ID = '$_POST[ID]'";
                        mysql_query($sqlset) OR die(mysql_error());
                        echo "Ihre Daten wurde gespeichert!";
                }
            else
                {
            //Nur Daten holen
            echo "<table border=\"0\" cellspacing=\"2\" cellpadding=\"3\" align=\"left\">";
            echo "<tr>";
            echo "<td width=\"10\"><SPAN class=\"text\"><b>ID</b></SPAN></td>";
            echo "<td width=\"110\"><SPAN class=\"text\"><b>Datum</b></SPAN></td>";
            echo "<td width=\"110\"><SPAN class=\"text\"><b>Host</b></SPAN></td>";
            echo "<td width=\"110\"><SPAN class=\"text\"><b>Spieler</b></SPAN></td>";
            echo "<td width=\"110\"><SPAN class=\"text\"><b>Spiele</b></SPAN></td>";        
            echo "<td width=\"110\"><SPAN class=\"text\"><b>Besonderheiten</b></SPAN></td>";
            echo "<td width=\"110\"><SPAN class=\"text\"><b>Inhalt</b></SPAN></td>";
            echo "<td width=\"110\"><SPAN class=\"text\"><b>Aendern</b></SPAN></td>";
            echo "</tr>";
            while ($test = mysql_fetch_array($res))
            {
             echo '<tr><form method="post" action="'.$_SERVER["PHP_SELF"].'">';
             echo '<td width="10">'.$test['ID'].'</td>';
             echo '<td width="120"><textarea name="Datum" rows="5">'.$test['Datum'].'</textarea></td>';
             echo '<td align="120"><textarea name="Host" rows="5">'.$test['Host'].'</textarea></td>';
             echo '<td width="120"><textarea name="Spieler" rows="5">'.$test['Spieler'].'</textarea></td>';
             echo '<td width="120"><textarea name="Spiele" rows="5">'.$test['Spiele'].'</textarea></td>';
             echo '<td width="120"><textarea name="Besonderheiten" rows="5">'.$test['Besonderheiten'].'
                       </textarea></td>';
             echo '<td width="120"><textarea name="Inhalt" rows="5">'.$test['Inhalt'].'</textarea></td>';
             echo '<td width="120"><input name="'.$test[ID].'" type="hidden" value="'.$test[ID].'">
                    <input type="Submit" name="senden" value="senden"></td>';
             echo '</form></tr>';
            }
            echo "</table><BR><BR><BR>";
                }
            ?>
            Zuletzt geändert von Takeliner; 13.06.2006, 19:31.

            Kommentar


            • #7
              Original geschrieben von Takeliner
              Soweit ich herausgefunden habe,
              ist irgendetwas bzw. irgendwo mit dan Anführungszeichen nicht in Ordnung.
              Mit den Anführungszeichen bei $_POST[ID] ist nicht in Ordnung, dass du sie gar nicht benutzt hast.

              Lesen: Warum ist $foo[bar] falsch?


              Außerdem, hast du denn überhaupt ein Element mit dem Namen "ID" im Formular?

              Ich sehe dich
              PHP-Code:
              echo '<td width="120"><input name="'.$test[ID].'" type="hidden" '...'; 
              ausgeben - also steht in $test[ID] der Wert "ID" drin?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar

              Lädt...
              X