Formular in DB eintragen

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

  • Formular in DB eintragen

    Hallo zusammen

    Ich versuche gerade ein mehrseitiges Formular zu erstellen. Habe zuerste angefangen mit die Textfelder mit Variablen weiterzugeben, also z.b.

    <INPUT TYPE=hidden NAME=hobby1 VALUE=<? echo "$hobby1"; ?> hidden>

    Dies hat zwar ganz gut geklappt, musste dann allerdings erfahren, dass dies nicht wirklich professionell ist. Nun habe ich es mit Sessions versucht. Alles klappt ganz schön, aber ich bringe die Daten nicht in die Datenbank hinein.

    Hier der Code

    seite2.php

    PHP-Code:
    <?php
    session_start
    ();
    $_SESSION['hobby1'] = isset($_POST['hobby1']) ? $_POST['hobby1'] : '';
    $_SESSION['hobby2'] = isset($_POST['hobby']) ? $_POST['hobby2'] : '';
    echo 
    $_SESSION['hobby1'];
    echo 
    $_SESSION['hobby2'];
    echo 
    "<p>";
    ?>
    <html>
    <head>
    </head>
    <body>
    <form method="POST" action="insert.php?<?php echo SID?>">
      <p>&nbsp;</p>
      <p><input type="submit" value="Abschicken" name="B1">
    </form>
    </body>
    </html>
    insert.php

    PHP-Code:
    <?php
    session_start
    ();


    $_SESSION['hobby1'] = isset($_POST['hobby1']) ? $_POST['hobby1'] : '';
    $_SESSION['hobby2'] = isset($_POST['hobby2']) ? $_POST['hobby2'] : '';
    echo 
    $_SESSION['hobby1'];
    echo 
    $_SESSION['hobby2'];
    echo 
    "<p>";

    ?>

    <?

    // Stelle Verbindung zu Ihrem Datenbankserver her 
    $dbh=mysql_connect("localhost","xxx","xxx"); 

    // wähle Datenbank aus
    // Name wird in der Regel von Ihrem Webspaceprovider vorgegeben
    mysql_select_db("xx",$dbh); 

    // trage in Datenbank (DB) ein 
    mysql_query("INSERT INTO gschaenggli SET hobby1 = '$hobby1', hobby2 = '$hobby2',); 
    echo""; 


    ?>
    Vielen Dank für eure Hilfe im Voraus

  • #2
    Re: Formular in DB eintragen

    Also ich sehe einen Unterschied zwischen $hobby1 und $_SESSION['hobby1'].

    Grundlagen.


    Und ausserdem überschreibst du deine Session-Variablen in der insert.php wieder, wenn dass das gesamte Script ist. Also raus damit.
    mfg - sagg

    Kommentar


    • #3
      ;-) nun dieser Unterschied sehe ich auch noch. Aber du hast recht, bei den Grundlagen happerts doch einbisschen.

      Nun zurück zu meinem Problem. Wenn ich aber dies so mache:

      PHP-Code:
      // trage in Datenbank (DB) ein 
      mysql_query("INSERT INTO gschaenggli SET hobby1 = '$_SESSION['hobby1'], hobby2 = '$_SESSION['hobby1']',); 
      echo""; 

      dann funktioniert es auch nicht......

      Kommentar


      • #4
        PHP-Code:
        mysql_query('INSERT INTO gschaenggli SET `hobby1` = "'.$_SESSION['hobby1'].'", `hobby2` = "'.$_SESSION['hobby2'].'"'); 
        IMHO solltest du dir diese Seite mal antun: schattenbaum.net
        mfg - sagg

        Kommentar


        • #5
          Herzlichen Dank, habe mir mal die Seite angeschaut.....tut mir sicher gut.

          nun mit deinem Code schreibt er mir keine Daten in die Datenbank

          insert.php

          PHP-Code:
          <?

          // Stelle Verbindung zu Ihrem Datenbankserver her 
          $dbh=mysql_connect("localhost","xxx","xxx"); 

          // wähle Datenbank aus
          // Name wird in der Regel von Ihrem Webspaceprovider vorgegeben
          mysql_select_db("xx",$dbh); 

          // trage in Datenbank (DB) ein 
          mysql_query('INSERT INTO gschaenggli SET `hobby1` = "'.$_SESSION['hobby1'].'", `hobby2` = "'.$_SESSION['hobby2'].'"');
          echo""; 


          ?>

          Kommentar


          • #6
            Wo ist dein session_start()?
            Das muss drinne bleiben.
            mfg - sagg

            Kommentar


            • #7
              Hallo,

              du schreibst einfach in diesem Form und es wird funktionieren!
              PHP-Code:
              $x1 $_SESSION['hobby1'];
              $x2 $_SESSION['hobby2'];
              $query_y "INSERT INTO gschaenggli (hobby1, hobby2) VALUES ('$x1', '$x2');
              mysql_query(
              $query_y); 

              Gruss, Jan.

              Kommentar


              • #8
                ....musste dann allerdings erfahren, dass dies nicht wirklich professionell ist...
                Och.... Und warum machen es dann so viele?
                Wenn du keine Sicherheitslücken darin siehst per Formular Hidden Felder weiter zu geben dann machs doch einfach und hör nicht auf Leute die unter Verfolgungswahn leiden.

                Wenn du lediglich daten in eine DB eintragen willst, kannst du (wenn nicht gerade 100 prüfungen statt finden müssen) getrost auf Sessions verzichten, da diese für sowas banales total überdimensioniert sind.....

                Wenn´s vorher ganz gut geklappt hat, warum änderst du dann dein vorhaben?

                Erklär doch mal mit deinen eigenen Worten warum

                Code:
                value="<? echo $wert; ?>"
                so unprofessionell sein soll....
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar


                • #9
                  Mir geht es um erster Linie nicht um die Sicherheit. Das Problem ist, wenn ich es mit

                  value="<? echo $wert; ?>"

                  mache dann nimmt er nicht den ganzen Text. Also z.B. "hallo ihr da draussen" dann übernimmt er mir nur "hallo"!!!

                  Wenn es natürlich eine Funktion gibt, die das unterbinden werde ich wieder auf diese variante zurückgreifen.

                  Grüsse

                  Kommentar


                  • #10
                    htmlspecialchars()
                    htmlentities()
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Nun meines Wissen wandelt htmlspecialchars() Sonderzeichen um und htmlentities() konventiert die Html Anführungszeichen........

                      nun ja...sehe ich da was falsch??

                      Kommentar


                      • #12
                        Mit anderen Worten

                        PHP-Code:
                        $wert "Hallo Welt";

                        echo 
                        $wert// = Hallo 
                        gruss Chris

                        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                        Kommentar


                        • #13
                          Hm, denke ich nciht, wenn ich das richtig verstehe.

                          Ich würde einfach auf fehlende Anführungszeichen im HTML-Code tippen.

                          Bsp.:
                          <input type=hidden value=<? echo $_POST['var']; ?>>
                          anstelle von
                          <input type=hidden value="<? echo $_POST['var']; ?>">

                          Wäre zumindest eine mögliche Ursache.
                          mfg - sagg

                          Kommentar

                          Lädt...
                          X