Daten mit Formular in SQL DB eintragen ???

  • Bin noch programmier anfänger.. würd halt gern per Formular etwas in eine SQL DB schreiben und leider nix bei google gefunden :(((


    Das hier im PHP Teil...



    und im html teil das Formular wo man die daten eingibt...

    PHP
    <form action="index.php" method="get">
    
    
    Name: <input type="text" name="name"><br>
    Homepage: <input type="text" name="homepage"><br>
    Ansprechperson: <input type="text" name="person"><br>
    Mail: <input type="text" name="mail"><br>
    Bemerkung: <textarea name="bemerkung"></textarea><br>
    <input type="submit" value="Looooss">
    <input type="reset"></form>

    aber er schreibt nichts in die db rein.. was mach ich falsch? :(( oder ist der ansatz komplett falsch!??!

  • also soweit ich das verstanden habe lädt sich die page immer wieder selbst

    php erstellt nicht einfach ne variabel für jedes formularfeld, diese daten musst erst selbst setzen,

    als erste zeile im php teil solltest du

    $import = $HTTP_GET_VARS;

    schreiben. damit wird ein Array import erstellt der alle mitgegeben daten aus dem Formular enthät

    diese sind nun über $import['feldname'] aufrufbar

    somit würde dein php teil folgendermaßen aussehen

    Falls dir der Array zu kompliziert ist kannst du auchjede Variabel einzeln importieren:

    Code
    if (isset($_GET['feldname'])) $feldname = $_GET['feldname']

    mfg
    by Tschebel!

  • PHP
    if(speichern)
    {
    	$connection = mysql_connect("localhost", "xxxx", "xxxx");
     	mysql_select_db("xxxx", $connection);
    
    	$query = "insert into tabelle(name,homepage,person) values (\"$name\",\"$homepage\",\"$person\");";
    	$result = mysql_query($query,$connection);
    }

    ...so würd ich den php teil schreiben, und zum forumlar in derselben datei:

    PHP
    <form action="<?php echo PHP_SELF; ?>" method="POST" > 
    
    
    Name: <input type="text" name="name"><br> 
    Homepage: <input type="text" name="homepage"><br> 
    Ansprechperson: <input type="text" name="person"><br> 
    <input type="submit" value="Looooss" value="speichern"> 
    <input type="reset"></form>

    Patient: "Doctor, doctor, my eye hurts when I poke it with a spoon."
    Doctor: "Don't poke it, then."

  • da hast aber ab php 4.3 ein problem wegen globalen vars....

    die mysql connection gehört mal in ein eigenes config.php file (dauernd die connection schreiben is gaga)

    dann musst du dir die vars mit $_POST holen (Achtung! $HTTP_POST_VARS geht bei manchen servern auch net!)

    also in deinem fall $_POST['name']; $_POST['homepage']; usw.

    die query sofern sie ein insert ist kannst du gleich executen. brauchst dir keine vars damit belegen ausser du willst noch irgendwas damit machen.

    sieht folgendermaßen aus:

    dein config.php file:

    PHP
    $host = "mysql.blah.att";
    $username = "blibb";
    $password = "blubb";
    mysql_connect($host, $username, $password);
    mysql_select_db("be000029_mainsite");



    dein db_insert file



    die anderen lösungsansätze sind prinzipiell auch richtig (wobei ich nicht weiss ob MrMassakers if(speichern) auch funktionieren würde), kommt halt drauf an welchen stil beim php skripting du dir aneignest oder entwickelst....


    hoffe ich konnte helfen.

    lg, Phil.

    Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders!
    http://www.chuckbronson.net/

  • Bin auch der Meinung, daß man immer die $_-Variablen ($_GET, $_POST, etc...) verwenden sollte; vor allem für Sessions sind diese herrvoragend geeignet ($_SESSION), da geht's gleich einfacher als mit session_register() u.ä.

    Was ich auf jeden Fall noch sagen wollte: man sollte sämtliche Daten, die mit der Datenbank in Berührung kommen, escapen! Soll heißen, immer addslashes() auf die Daten anwenden, sonst kann es zu (u.U. sicherheitskritischen) Fehlern kommen (Stichwort "sql piggybacking").

    Mein Codevorschlag also:



    Weiter habe ich $PHP_SELF durch $_SERVER['PHP_SELF'] ersetzt, ist sauberer so.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!