PHP-Formulardaten in Datenbank speichern

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Creused, 13. Mai 2014 .

Schlagworte:
  1. 13. Mai 2014
    Hallo,
    ich möchte mir ein Formular bastel, damit die Kunden Feedback etc. geben können und diese Werte sollen dann in der Datenbank gespeichert werden.
    Mein Formular sieht so aus:

    Formular.html

    Code:
    <!DOCTYPE html>
    <html lang="de">
    <head>
     <link rel="stylesheet" type="text/css" href="format.css">
     <meta charset="utf-8">
     <title>TITEL</title>
    </head>
    
    <body>
    <h1>Kontakt mit Email</h1>
    <form action="mailto:info@XXXXXXX <tr>
     <td>Vorname:</td>
     <td><input type="text" name="Vorname" size="30"/></td>
     </tr>
     <tr>
     <td>Nachname:</td>
     <td><input type="text" name="Nachname" size="30"/></td>
     </tr>
     </table>
     <p>Wie sind Sie auf unseren Shop aufmerksam geworden?<br />
     <select name="aufmerksam" size="1" >
     <option value="Internet">Internet</option>
     <option value="Bekannte">Bekannte</option>
     <option value="Werbung">Werbung</option>
     </select>
     </p>
     <p> Sonstige Kommentare:<br />
     <textarea name="Kommentare" cols="40" rows="2"></textarea>
     </p>
     <p><input type="submit" value="Email versenden"/></p>
     </form>
     <p><a href="startseite.html">Zur&uuml;ck zur Startseite</a></p>
    </body>
    </html>
    Die Datenbank heißt "test" und dort sollen alle o.g. Werte eingetragen werden.

    DB-Connect und Eintragen:
    Code:
    <?php
    $verbindung = mysql_connect("localhost", "root", "")
    or die ("Falsche Logindaten!");
    
    mysql_select_db("test")
    or die ("Verbindung zur Datenbank fehlerhaft!");
    
    $vorname = $_POST["vorname"];
    $nachname = $_POST["nachname"];
    $aufmerksam = $_POST["aufmerksam geworden durch"];
    
    
    $eintrag = "INSERT INTO test(Vorname, Nachname, aufmerksam, Kommentare)
    VALUES('".mysql_real_escape_string($vorname)."', '".mysql_real_escape_string($nachname)."', '".mysql_real_escape_string($aufmerksam)."'', '".mysql_real_escape_string($Kommentare))";
    
    $eintragen = mysql_query($eintrag) or die(mysql_error());
    mysql_close($verbindung);
    ?>
    Kann ich ebenfalls die Ergebnisse von Radiobuttons speichern?
    Falls ja, wie?

    Sorry, bin der absolute PHP-Noob.

    Danke im voraus,
     
  2. 13. Mai 2014
    AW: PHP-Formulardaten in Datenbank speichern

    radiobuttons geben immer true/false an das kannst du auch speichern.

    if($_POST['radiobutton']==true){$radiobutton=1;}else{$radiobutton=0;} dann kannst du den wert 1 oder 0 in die datenbank einfügen in eine INTEGER spalte.

    Der PHP code ist vom Prinzip her richtig, hat nur paar Tippfehler bzw es fehlen paar POST variablen.


    Die Datenbank-Struktur muss natürlich vorher schon existieren und entsprechend genau die Spaltennamen haben die du verwendest beim INSERT.

    Du solltest auch eine ID pro Eintrag verwenden.
    Am besten auf INT und Autoincrement setzen, alles andere auf VARCHAR.

    $vorname = mysql_real_escape_string($_POST['vorname']);
    ...
    ... für alle anderen Daten auch.
    Code:
    $query = "INSERT INTO (id,vorname,nachname,aufmerksam,kommentare) VALUES ('','$vorname','$nachname','$aufmerksam','$kommentare')";
    so sieht dann der Query aus.


    Damit du siehst was für Fehler im Code sind, füge das am Anfang der PHPdatei ein:

    error_reporting(E_ALL & ~E_NOTICE);
    ini_set("display_errors", 1);
     
  3. 13. Mai 2014
    AW: PHP-Formulardaten in Datenbank speichern

    So,
    habs hinbekommen.
    Leider trägt er mir bei den Radiobuttons immer die 0 ein, egal welchen ich auswähle.

    Wie kann ich die am besten definieren?
     
  4. 13. Mai 2014
    AW: PHP-Formulardaten in Datenbank speichern

    code?

    Code:
     <input type="radio" name="Zahlmethode" value="Mastercard"> Mastercard<br>
     <input type="radio" name="Zahlmethode" value="Visa"> Visa<br>
     <input type="radio" name="Zahlmethode" value="AmericanExpress"> American Express
     
  5. 14. Mai 2014
    AW: PHP-Formulardaten in Datenbank speichern

    Hast du es mal per echo ""; ausgeben lassen?
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.