Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten per Formular in mysql DB

Einklappen

Neue Werbung 2019

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

  • Daten per Formular in mysql DB

    Hallo alle zusammen,
    Bin absoluter Anfänger in PHP und mysql. Habe mich die letzten Tage eingelesen und wollte jetzt etwas schreiben, bei dem Daten per form in die Datenbank eingeschrieben werden. Dafür habe ich die folgenden codes. Vielleicht kann mir jemand sagen warum das noch nicht funktioniert? Oder bin ich total auf dem Holzweg?

    testeingabe.html
    Code:
    <html>
    <head>
    <title>testeingabe</title>
    </head>
    <body><br>
    <form action="testausfuehren.php" type="post">
    <input name="testwert1" value="Wert1" type="text">
    <input name="testwert2" value="Wert2" type="text">
    <input name="Speichern" value="speichern" type="submit">
    </form>
    </body>
    </html>
    testausfuehren.php
    PHP-Code:
    <html>
    <head>
    <title>testausfuehren</title>
    </head>
    <body><br>

    <?php 
    mysql_connect
    ("localhost","***","***");
    $testw1 $_POST['testwert1'];
    $testw2 $_POST['testwert2'];
    $eintrag "INSERT INTO test
    (test1, test2)
    VALUES
    ('
    $testw1', '$testw2')";
    $eintragen mysql_query($eintrag); 
    if(
    $eintragen == true)
    {
    echo 
    "Eintrag war erfolgreich";
    }
    else
    {
    echo 
    "Fehler beim Speichern";
    }
    ?>
    </body>
    </html>
    Am Ende wird Fehler beim Speichern ausgespuckt. Kann es sein, dass ich beim erstellen der Datenbank in mysql einen Fehler gemacht habe?
    Vielen Dank für jede Hilfe

  • #2
    1.) Es heißt <form method="post">, nicht type="post"
    2.) dein Skript ist anfällig für SQL-Injections (bitte googlen)

    Kommentar


    • #3
      Wie lautet denn die Fehlermeldung?

      Kommentar


      • #4
        Die Fehlermeldung ist:
        Fehler beim Speichern.
        Ich denke ich habe irgendwas beim erstellen der Datenbank falsch gemacht. Kann mir da jemand einen Tipp geben? Type habe ich durch method ersetzt. Das Ergebnis bleibt aber gleich.

        Kommentar


        • #5
          und wie sieht deine tabelle aus ?

          Kommentar


          • #6
            Name ist test. Darin sind dann zwei felder: test1 & test2 beide des typs text, Kollation: latin1_german2_ci, Attribute nix, Null: Nein, Standard: Kein, Extra: Nix

            Kommentar


            • #7
              http://www.php.de/wiki-php/index.php...ging:Leitfaden
              http://www.php.de/wiki-php/index.php/Debugging:SQL

              Kommentar


              • #8
                Habs jetzt hinbekommen, dass der Eintrag funktioniert. Muss es jetzt nur noch schaffen, dass der Eintrag nicht doppelt gemacht wird.
                Hab ich mittlerweile auch hinbekommen.
                Danke für die Tipps

                Kommentar


                • #9
                  Habe genau das gleich Problem, wie hast du es denn gelöst ? bin langsam am verzweifeln...

                  eingabe
                  <body>
                  <form action="config/enter.php" methode="post">
                  <p>
                  <input name="url" type="text" />
                  Url
                  </p>
                  <p>
                  <input name="urlname" type="text" />
                  Hpname
                  </p>
                  <p>
                  <input name="name" type="text" />
                  name</p>
                  <p>
                  <textarea name="beschreibung" cols="45" rows="5"></textarea>
                  beschreibung</p>
                  </p>
                  <label>
                  <input type="submit" value="Envoyer" />
                  <input type="reset" value="Supprimer" />
                  </label>
                  </p>
                  </form>
                  enter.php




                  $url = $_POST["url"];
                  $hpname = $_POST["urlname"];
                  $name = $_POST["name"];
                  $beschreibung = $_POST["beschreibung"];

                  $sql = "INSERT INTO links (url, urlname, name, beschreibung) VALUES ('$url', '$urlname', '$name', '$beschreibung')";

                  $res = mysql_query($sql) or die (mysql_error());

                  if($sql == true)
                  {
                  echo "Eintrag war erfolgreich";
                  }
                  else
                  {
                  echo "Fehler beim Speichern";
                  }
                  ?>
                  So es kommt immer wieder eine neue id zur tabelle hinzu sie ist aber leer... die daten die ich eingegeben habe sehe ich nicht... aber ein neuer eintrag wurde bestätigt...

                  kann mir jemand bitte helfen ?

                  Danke

                  Kommentar


                  • #10
                    Ja, ja, es macht Sinn, einen alten Thread auszugraben und den eigenen Quellcode zu verheimlichen. Was sollen wir damit anfangen?

                    Kommentar


                    • #11
                      Hat die Tabelle "links" denn einen Primärschlüssel, der auf Auto-Increment gestellt ist? Ob der INSERT erfolgreich war, solltest du besser mit mysql_insert_id() prüfen.

                      Kommentar


                      • #12
                        Ausserdem sollte nur eingefügt werden, wenn auch wirklich ein POST Request eingegangen ist, und alle Datenfelder mit Werten belegt sind (anderenfalls erzeugt JEDER Request einen neuen Datensatz)

                        Kommentar


                        • #13
                          Ja die Tabelle hat ein Primärschlüssel, der auf Auto-Increment gesetzt ist. Also ich glaub schon dass der insert erfolgreich war denn in der Id spalte ist ein Eintrag dazugekommen also war der insert wohl erfolgreich aber eben wird kein inhalt angezeight. =( hat sonst keiner eine idee ?

                          Kommentar


                          • #14
                            Zeige uns doch einfach mal deinen Quellcode, sonst können wir nur raten.

                            Kommentar


                            • #15
                              Ich schrieb doch schon, das bei jedem Reload ein neuer Datensatz entsteht, wenn man im Script nicht drauf achtet, ob überhaupt ein Formular abgesendet wurde...

                              Kommentar

                              Lädt...
                              X