Problem mi Eingabeformular un DB

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

  • Problem mi Eingabeformular un DB

    Hallo,
    ich habe mir folgendes Formular gebaut um Datensätze in der DB zuspeichern.

    Beim ausführen bekomme ich keine Fehlermeldung, jedoch in die DB wird nichts eingetragen.

    Frage warum ??? Hier der Code:
    PHP-Code:
    <html>
    <body>
    <?php
    include ("dbconnect_inc.php");
    if (
    $submit) {
    $sql "INSERT INTO table_mike (anrede,name,handy,telefon) VALUES ('$anrede','$name','$handy','$tel')";
    echo 
    "Die Daten wurden gespeichert !<br><br>";
    }
    else {
    ?>

    <form method="post" action="<? echo $PHP_SELF ?>">
    <table border="0" align="center">
    <tr>
    <td>Anrede</td>
    <td><select name="anrede" size="1">
    <option value="0">Herr
    <option value="1">Frau
    </select></td>
    </tr><tr>
    <td>Name</td>
    <td><input type="text" name="name" value="<? echo $name ?>" size="50"></td>
    </tr><tr>
    <td>Handy</td>
    <td><input type="text" name="handy" value="<? echo $handy?>" size="50"></td>
    </tr><tr>
    <td>Telefon</td>
    <td><input type="text" name="telefon" value="<? echo $tel ?>" size="50"></td>
    </tr><tr>
    <td> </td>
    <td><input type="submit" name="submit" value="Eintragen"></td>
    </tr>
    </table>
    </form>
    <?
    }
    ?>
    </body>
    </html>
    Danke und grüsse Mike
    Zuletzt geändert von firemike; 15.05.2006, 17:13.

  • #2
    da fehlen grundlegende dinge. wo wird denn die query ausgeführt?

    http://de.php.net/manual/de/ref.mysql.php
    mfg

    Kommentar


    • #3
      ...hmm, tschuldige die Anfängerfrage, aber welche Query, ich will ja nix abfragen, sondern nur was in die DB einfügen.

      Oder versteh ich das was falsch ???

      Grüsse Mike

      Kommentar


      • #4
        Re: Problem mi Eingabeformular un DB

        Original geschrieben von firemike
        PHP-Code:

        <?php
        include ("dbconnect_inc.php");
        if (
        $submit) {
        $sql "INSERT INTO table_mike (anrede,name,handy,telefon) VALUES ('$anrede','$name','$handy','$tel')";
        echo 
        "Die Daten wurden gespeichert !<br><br>";
        }
        else {
        ?>
        Dein provider wird sich freuen und du dich irgendwann auch,
        wenn deine seite defaced wurde weil du benutzereingaben ungeprüft
        in die db schreibst.
        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

        Kommentar


        • #5
          deine query, also dein sql-statement (insert into...) steht in einem string. diesen string übergibst du der mysql_query funktion um die query auszuführen. schau mal den link an, damit du siehst wie eine mysql-abfrage aufgebaut ist. das sind grundlagen
          mfg

          Kommentar


          • #6
            Hallo,
            Danke für die Antworten. Frage, ist es ausreichend nach dieser Zeile:

            PHP-Code:
            $sql "INSERT INTO table_mike (anrede,name,handy,telefon) VALUES ('$anrede','$name','$handy','$tel')"
            das hier einzufügen:

            PHP-Code:
            $resultmysql_query($sql); 
            das würde nämlich funzen. Oder muss da noch mehr hin damit das perfekt ist ???


            Grüsse Mike

            Kommentar


            • #7
              Hi,
              du solltest dich nicht darauf verlassen dass register_globals auf on ist.
              Dann solltest du grundsätzlich, wie bereits geschrieben,
              benutzereingaben nicht ungeprüft in deinen query übernehmen.
              Dann wäre es nicht verkehrt wenn du das ergebnis von mysql_query
              entsprechend weiter verarbeitest.

              greets
              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

              Kommentar


              • #8
                ..hmm, könntest Du mir als Anfänger vielleicht kurz posten wie das auszusehen hat ?

                Und woran kann es liegen, das manche Feldeingaben im Forumlar nicht in die DB übernommen werden ?


                DANKE UND GRÜSSE
                MIKE

                Kommentar


                • #9
                  Hi,

                  in etwa so
                  PHP-Code:

                  function simple_escape(&$elem,$key,$db){
                              
                  $elem mysql_real_escape_string($elem,$db);
                  }

                  //verbinung herstellen
                  $db mysql_connect('server','user','pw') or die('connect failed');
                  mysql_select_db('my_db',$db);

                  $needed = array('anrede' => '',
                                              
                  'name' =>'',
                                              
                  'handy' =>'',
                                              
                  'telefon' => '');

                  //testen ob alle felder einen wert haben
                  if(!count(array_intersect(array_keys($_POST),array_keys($needed))){
                        die(
                  'please fill in all fields');
                  }

                  //bisschen absichern
                  array_walk($needed,'simple_escape',$db) or die('internal error');

                  //query bauen
                  $sql "INSERT INTO `table_mike` (`anrede`,`name`,`handy`,`telefon`)
                   VALUES ('
                  {$needed['anrede']}','{$needed['name']}','{$needed['handy']}',
                  '
                  {$needed['telefon']}') ";

                  if(!
                  mysql_query($sql,$db)){
                      die(
                  mysql_error($db));
                  }

                  echo 
                  'everything allright...'
                  ungetestet!

                  greets
                  (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                  Kommentar


                  • #10
                    Hallo,
                    Danke für die Hilfe ich werd versuchen das so umzusetzen, aber ein anderes Problem hab ich noch.

                    BEi folgendem Code werden mir alle Daten aus dem Formular in die DB eingetragen, nur das Feld Kategorie bleibt immer leer oder liegt das auch an meinem Formularcode.

                    Das Kategoriefeld hat die Parameter VARCHAR(25) not null

                    PHP-Code:
                    <html>
                    <body>
                    <?php

                    include ("dbconnect_inc.php");
                    if (
                    $submit) {
                    $sql "INSERT INTO gallery_mike (kdnummer, kategorie, firma, anrede ) VALUES ('$kdnummer','$kateg','$firma','$anrede')";
                    $resultmysql_query($sql); 
                    echo 
                    "Die Daten wurden gespeichert !<br><br>";
                    }
                    else {
                    ?>

                    <form method="post" action="<? echo $PHP_SELF ?>">
                    <table border="0" align="center">
                    <tr>
                    <td>Kundennummer</td>
                    <td><input type="text" name="kdnummer" value="<? echo $kdnummer ?>" size="50"></td>
                    </tr><tr>
                    <td>Kategorie</td>
                    <td><input type="text" name="kategorie" value="<? echo $kateg ?>" size="50"></td>
                    </tr><tr>
                    <td>Firma / Club</td>
                    <td><input type="text" name="firma" value="<? echo $firma ?>" size="50"></td>
                    </tr><tr>
                    <td>Anrede</td>
                    <td><input type="text" name="anrede" value="<? echo $anrede ?>" size="50"></td>
                    </tr><tr>
                    <td>&nbsp;</td>
                    <td><input type="submit" name="submit" value="Eintragen"></td>
                    </tr>
                    </table>
                    </form>
                    <?
                    }
                    ?>
                    </body>
                    </html>
                    DAnke und Grüsse Mike

                    Kommentar


                    • #11
                      weil du

                      PHP-Code:
                      <input type="text" name="kategorie" value="<? echo $kateg ?>" size="50">
                      name=kategorie hast und es mit $kateg abfragst. natürlich ist es dann leer. nebenbei solltest dich auch mal mit register globals beschäftigen, so wie closure schon meinte.
                      mfg

                      Kommentar


                      • #12
                        da stimmt einiges nicht,
                        wenn man auf submit drückt wird das formular abgeschickt mit den entsprechenden variablen ...
                        in deinem beispiel so:
                        Code:
                        kdnummer=das_was_du_bei_Kundenummer_eingetragen_hast
                        kategorie=das_was_du_bei_Kategorie_eingetragen_hast
                        firma=das_was_du_bei_Firma_eingetragen_hast
                        anrede=das_was_du_bei_Anrede_eingetragen_hast
                        Diese Variablen kannst du nun auslesen indem du $_POST verwendest.
                        Bsp: $_POST['kdnummer'] gibt die eingetragene Kundennummer aus!
                        dein sql müsste also theoretisch so aussehn:
                        PHP-Code:
                        $sql "INSERT INTO gallery_mike (kdnummer, kategorie, firma, anrede ) VALUES ('".$_POST['kdnummer']."','".$_POST['kategorie']."','".$_POST['firma']."','".$_POST['anrede']."')"
                        mich wundert das es vorher bei dir schon was in die db geschrieben hat ^^
                        und bedenke das dein script nicht sicher ist, wenn du die daten nicht vorher prüfst bevor du in die db schreibst
                        Mess with the Besth, die like the rest!

                        Kommentar


                        • #13
                          mich wundert das es vorher bei dir schon was in die db geschrieben hat
                          weil er register globals=on hat.
                          mfg

                          Kommentar


                          • #14
                            achso alles klar
                            wieder was gelernt!
                            Mess with the Besth, die like the rest!

                            Kommentar

                            Lädt...
                            X