Problem mit POST

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit POST

    Hallo,

    ich habe da ein kleines (also für euch) für mich eher ein großes Problem.
    Ich habe eine DB in die ich Daten eintragen will, mittels eines Formulares. Aber irgendwie kommen die Daten scheinbar nicht an.

    Hier ist mal das Script, villeicht kann da ja mal jemand drüber gucken und mir sagen wo der Käfer ist.

    PHP Code:

    <?
    include('verbindung.php');
    $abfrage = "SELECT kunde, f_typ, f_nr, werk, fm_send FROM auslieferung";
    $ergebnis = mysql_query($abfrage);
    ?>
    <html>
        <table border="1">
         <tr><td>Kunde</td><td>Fhzg.-typ</td><td>FIN</td><td>Werk</td><td>FM an Kunde</td><td>&nbsp;</td></tr>    
    <?
    while($row = mysql_fetch_object($ergebnis))    {
        echo "<tr>";
        echo "<td>$row->kunde</td><td>$row->f_typ</td><td>$row->f_nr</td><td>$row->werk</td><td>$row->fm_send</td><td>&nbsp;</td>";
        echo "</tr>";
      }
    ?>
    <form action="index.php" method="post">
         <tr><td colspan="6"><b>Einen neuen Eintrag anlegen</b></td></tr>
         <tr><td>Kunde</td><td>Fhzg.-typ</td><td>FIN</td><td>Werk</td><td>FM an Kunde</td><td>&nbsp;</td></tr>
         <tr>
            <td><input type="Text" name="kunde"></td>
            <td><input type="Text" name="f_typ"></td>
            <td><input type="Text" name="f_nr"></td>
            <td><input type="Text" name="werk"></td>        
            <td><input type="Text" name="fm_send"></td>
            <td><input type="Submit" value="Absenden"></td>
        </tr>    
     </table>
    </form>
    </html>
    <?
    //Neue Fahrzeugdaten in DB eintragen
    $eintrag = "INSERT INTO auslieferung (kunde, f_typ, f_nr, fm_send)
    VALUES ($_POST[kunde], $_POST[f_typ], $_POST[f_nr], $_POST[werk], $_POST[fm_send])";
    $eintragen = mysql_query($eintrag);
    //Wurden die Daten eingetragen?

    if($eintragen == true)    {    echo "Eintrag war erfolgreich";    }
    else    {    echo "Fehler beim Speichern";    }

    echo $kunde."&nbsp;".$f_typ."&nbsp;".$f_nr."&nbsp;".$werk."&nbsp;".$fm_send;
     
    ?>
    ... wenn deine träume sterben dann wirst du alt !!!


  • #2
    du überprüfst nicht, ob das formular abgesendet wurde. der letzte teil des scriptes wird ja immer ausgeführt! außerdem solltest du dich mal über ein vernünftiges debugging informieren.und beachte auch mal folgendes zum thema programmierstil

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

    Comment


    • #3
      $_POST[kunde], $_POST[f_typ], $_POST[f_nr], $_POST[werk], $_POST[fm_send]
      Ist falsch, außer kunde, f_typ, f_nr, werk und fm_send sind Konstansten, was ich aber nicht glaube.

      Richtig wäre $_POST['kunde']

      Außerdem solltest du nicht Benutzereingaben direkt in SQL Queries schreiben, außer du willst, dass deine Webseite so einfach wie möglich gehackt wird.

      Siehe: SQL-Injection

      Comment


      • #4
        Ist falsch, außer kunde, f_typ, f_nr, werk und fm_send sind Konstansten, was ich aber nicht glaube.
        nö, sind sie nicht. nicht bei der schreibweise.

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

        Comment


        • #5
          Re: Problem mit POST

          Original geschrieben von TheCure13
          Aber irgendwie kommen die Daten scheinbar nicht an.
          Ist eine wahnsinnig genaue Fehlerbeschreibung!
          Zuerst solltest du vielleicht mal die Forumsregeln lesen und anwenden. Ich bin sicher, dann erhälste von mysql_error(() eine wunderschöne Fehlermeldung, die dir auch sagt, warum die Daten «irgendwie nicht ankommen»
          Gruss
          H2O

          Comment


          • #6
            Original geschrieben von Kropff
            nö, sind sie nicht. nicht bei der schreibweise.

            peter
            Also Kropff hat rescht $_POST[kunde] falsch
            richtig $_POST['kunde']

            Wass sagt denn der Fehleranzeige von MYSQL.
            $fehler=mysql_error();
            echo $fehler;

            Füge disen Quellcode in deine datei ein und du wirst ein Fehler ernten.

            Comment


            • #7
              wahrscheinlich einen column count doesnt match...
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Comment


              • #8
                Re: Problem mit POST

                Original geschrieben von TheCure13
                PHP Code:
                [...]
                echo 
                $kunde."&nbsp;".$f_typ."&nbsp;".$f_nr."&nbsp;".$werk."&nbsp;".$fm_send
                eine ausgabe wird hier nie erscheinen ;-)

                PHP Code:
                echo $_POST['kunde']; 
                schon eher
                Gruß
                Uzu

                private Homepage

                Comment


                • #9
                  Original geschrieben von MelloPie
                  wahrscheinlich einen column count doesnt match...
                  Nicht nur wahrscheinlich. Aber das ist nur einer von mehreren Fehlern. Und ausserdem sieht er die alle selber, wenn er sich an die Regeln hält.
                  Original geschrieben von UzumakiNaruto
                  eine ausgabe wird hier nie erscheinen
                  Wenn register_globals eingeschaltet sind schon ...
                  Gruss
                  H2O

                  Comment


                  • #10
                    Erstmal danke für die zahlreichen Antworten.

                    Also mal der Reihe nach:

                    Irgendwie kommt nichts an war die saloppe Bezeichnung für:
                    In der DB wird nichts gespeichert

                    Durch einfügen von:
                    PHP Code:
                    $fehler=mysql_error();
                    echo 
                    $fehler
                    erscheint nach dem absenden des ausgefüllten formulars folgendes:

                    Column count doesn't match value count at row 1


                    Wenn ich die vorgeschlagene Schreibweise:
                    PHP Code:
                    $eintrag "INSERT INTO auslieferung (kunde, f_typ, f_nr, fm_send)
                    VALUES (
                    $_POST['kunde'], $_POST['f_typ'], $_POST['f_nr'], $_POST['werk'], $_POST['fm_send'])";
                    $eintragen mysql_query($eintrag); 
                    bei dem INSERT INTO verwende, kommt folgende Fehlermeldung nach dem Absenden des Formulares:

                    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\fliegl\index.php on line 33

                    In Line 33 steht der INSERT INTO Befehl
                    ... wenn deine träume sterben dann wirst du alt !!!

                    Comment


                    • #11
                      Column count doesn't match value count at row 1
                      fehler 1
                      Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, ...
                      fehler 2
                      PHP Code:
                      $eintrag "INSERT INTO auslieferung (kunde, f_typ, f_nr, fm_send)
                      VALUES (
                      $_POST['kunde'], $_POST['f_typ'], $_POST['f_nr'], $_POST['werk'], $_POST['fm_send'])"
                      hierzu wurde ziemlicher blödsinn geschrieben. lies dir mal das hier genau durch. und den ersten fehler wirst du wohl selber finden (siehe auch hier).

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

                      Comment


                      • #12
                        So sieht meine Datei jetzt aus:

                        PHP Code:
                        <?
                        include('verbindung.php');
                        $abfrage = "SELECT kunde, f_typ, f_nr, werk, fm_send FROM auslieferung";
                        $ergebnis = mysql_query($abfrage);
                        ?>
                        <html>
                            <table border="1">
                             <tr><td>Kunde</td><td>Fhzg.-typ</td><td>FIN</td><td>Werk</td><td>FM an Kunde</td><td>&nbsp;</td></tr>    
                        <?
                        while($row = mysql_fetch_object($ergebnis))    {
                            echo "<tr>";
                            echo "<td>$row->kunde</td><td>$row->f_typ</td><td>$row->f_nr</td><td>$row->werk</td><td>$row->fm_send</td><td>&nbsp;</td>";
                            echo "</tr>";
                          }
                        ?>
                        <form action="index.php" method="post">
                             <tr><td colspan="6"><b>Einen neuen Eintrag anlegen</b></td></tr>
                             <tr><td>Kunde</td><td>Fhzg.-typ</td><td>FIN</td><td>Werk</td><td>FM an Kunde</td><td>&nbsp;</td></tr>
                             <tr>
                                <td><input type="Text" name="kunde"></td>
                                <td><input type="Text" name="f_typ"></td>
                                <td><input type="Text" name="f_nr"></td>
                                <td><input type="Text" name="werk"></td>        
                                <td><input type="Text" name="fm_send"></td>
                                <td><input type="Submit" value="Absenden"></td>
                            </tr>    
                         </table>
                        </form>
                        </html>
                        <?
                        //Neue Fahrzeugdaten in DB eintragen
                        $eintrag = "INSERT INTO auslieferung (kunde, f_typ, f_nr, fm_send) VALUES ($_POST[kunde], $_POST[f_typ], $_POST[f_nr], $_POST[werk], $_POST[fm_send])";
                        $eintragen = mysql_query($eintrag);
                        //Wurden die Daten eingetragen?

                        if($eintragen == true)    {    echo "Eintrag war erfolgreich<br />";    }
                        else    {    echo "Fehler beim Speichern<br />";    }

                        echo $_POST['kunde']."&nbsp;".$_POST['f_typ']."&nbsp;".$_POST['f_nr']."&nbsp;".$_POST['werk']."&nbsp;".$_POST['fm_send'];

                        echo "<br />";
                        $fehler=mysql_error();
                        echo $fehler;
                        ?>
                        Diese Fehlermeldung kommt:

                        Column count doesn't match value count at row 1

                        und ich hab keinen Plan was die mir sagen will, oder was ich falsch mache. Das mit den Zeichenketten auf deiner Seite habe ich mir durchgelesen. Aber ehrlich gesagt ... Ich werde da nicht wirklich draus schlau.
                        KAnnst du mir das nicht erklären als wäre ich 8 Jahre alt?
                        ... wenn deine träume sterben dann wirst du alt !!!

                        Comment


                        • #13
                          Column count doesn't match value count at row 1
                          das heißt, dass du in deinem query vier felder auswählst, aber fünf einträge hineinschreiben willst.
                          Das mit den Zeichenketten auf deiner Seite habe ich mir durchgelesen ... KAnnst du mir das nicht erklären als wäre ich 8 Jahre alt?
                          LESEN, LESEN, LESEN! AUSPROBIEREN, AUSPROBIEREN, AUSPROBIEREN! wenn du das nicht begreifst, sollest du die finger vom programmieren lassen.

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

                          Comment


                          • #14
                            $eintrag = "INSERT INTO auslieferung (kunde, f_typ, f_nr, fm_send) VALUES ($_POST[kunde], $_POST[f_typ], $_POST[f_nr], $_POST[werk], $_POST[fm_send])";
                            das sind alles zahlenwerte oder boolean????
                            sollten es Strings sein, solltest du diese auch so kennzeichnen

                            PHP Code:
                            $eintrag "
                            INSERT INTO auslieferung (
                               kunde, f_typ, f_nr, fm_send
                            ) VALUES (
                               
                            $_POST[kunde], '$_POST[f_typ]', $_POST[f_nr], '$_POST[fm_send]'
                            )"

                            Gruß
                            Uzu

                            private Homepage

                            Comment


                            • #15
                              zuerst sollte er mal zählen lernen
                              PHP Code:
                              (kundef_typf_nrfm_send
                              und dann
                              PHP Code:
                              ($_POST[kunde], $_POST[f_typ], $_POST[f_nr], $_POST[werk], $_POST[fm_send]) 
                              peter
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Comment

                              Working...
                              X