Ankündigung

Einklappen
Keine Ankündigung bisher.

Formulardaten in Datenbank übertragen

Einklappen

Neue Werbung 2019

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

  • Formulardaten in Datenbank übertragen

    Hallo Leute,

    seit gestern versuche ich verzweifelt rauszufinden, wie ich vom Nutzer eingegebene Daten in der Datenbank speichern kann.
    Also ich habe eine Datenbank mit phpMyAdmin angelegt und möchte, dass man sich auf meiner Webiste registrieren kann.
    Habe es schon mit einem Tutorial (ich glaub sogar von hier?) versucht, aber da hat er mir nur einen neuen Eintrag gemacht ohne die Daten zu übertragen.

    Jedenfalls hier mal das Skript:

    PHP-Code:
    <?
    include "inc/dbaccess.inc.php"; 

     if ($_REQUEST['ID']!=0)
     {
        $qu = "select * from nutzer where ID='".$_REQUEST['ID']."'";

        $ret = mysql_query($qu); 
        $arr1 = mysql_fetch_arr($ret); 
     }else
     {
     }
    ?>
    Code:
    <!-- hier ist der xhtml-code -->
       [<form action="eintrag.php" method="post" target="">
        <input type="HIDDEN" name="ID" value="<? echo $_REQUEST['ID'] ?>" size="" maxlength="">
        <p>
         <p>Benutzername:</p>
          <input name="Login" type="text" value="<? echo $arr1['Login'] ?>" size="15" maxlength="15" /> <br/>
         <p>Passwort:</p>
          <input name="Passwort1" type="password" value="<? echo $arr1['Passwort'] ?>" size="12" maxlength="12"/> <br/>
         <p>Passwort wiederholen:  </p>
          <input type="password" name="Passwort2" value="" size="" maxlength=""> <br/>
        <p>E-Mail:</p>
         <input name="Email" type="text" value="<? echo $arr1['Email'] ?>" size="30" maxlength="30"/> <br/>
        <div id="form_button">
          <input type="submit" name="" value="Absenden" />
          <input type="reset" value="Abbrechen" />[/COLOR]
        </div>
       </p>
       </div>
    ....
    die include-Datei

    PHP-Code:
    <?
     $dbs = @mysql_connect("localhost","db_nutzer","pw")
            or die ("War wohl nix mit dem Server");

     $db = mysql_select_db("cocktailuser",$dbs)
            or die ("DB nicht vorhanden, oder nicht gen&uuml;gend Rechte");
    ?>
    die Datei zum Eintragen in die DB:
    PHP-Code:
    <?
    include "inc/dbaccess.inc.php";


    // Besteht bereits ein Login unter diesem Namen?

    $qu = "select * from nutzer where Login='".$_REQUEST['Login']."'";
    $ret = mysql_query($qu);

    if ($_REQUEST['ID']== 0 && mysql_num_rows($ret)!=0)
    {
       header("Location: registrieren.php?ID=".$_REQUEST['ID']."&Error=1");
       exit;
    }

    if ($_REQUEST['Passwort1']!=$_REQUEST['Passwort2'])
    {

      header("Location: registrieren.php?ID=".$_REQUEST['ID']."&Error=2");
       exit;
    }

    $xpasswort = crypt($_REQUEST['Passwort1'],"AB");

    if ($_REQUEST['ID']!= 0)
    {
       $qu = "Update nutzer set";
      $tail = " where ID ='".$_REQUEST['ID']."'";
    } else
    {
       $qu = "insert into nutzer ";
       $tail = "";
    }

       $qu = "Login='".$_REQUEST['Login']."',";
       $qu = "Email='".$_REQUEST['Email']."',";
       $qu .= "Passwort1 = '".$xpasswort."'";
       $qu .= $tail;

    mysql_query($qu);

    header("Location: index_cocktail.php");
    exit;
     ?>

  • #2
    bitte das nächste mal ALS CODE FORMATIEREN!

    das problem liegt darin das du deine postwerte nie empfängst.

    Kommentar


    • #3
      nix nächstes mal.. wir haben hier eine EDIT-Funktion und auch nicht [CODE] sondern [PHP] - Tags verwenden

      Kommentar


      • #4
        Oh sorry wegen des Codes...
        Und was bedeutet das jetzt genau für den Quellcode, was muss ich ändern?
        Ich kenn mich leider noch nicht wirklich aus, ich hab hier einfach nur das Skript von meinem Prof auf meinen Fall abgewandelt

        Kommentar


        • #5
          @webproger mach die augen auf er benutzt $_REQUEST
          @jul: Du hast zweimal einen . (Punkt) vergessen
          $qu = "Login='".$_REQUEST['Login']."',";
          $qu = "Email='".$_REQUEST['Email']."',";
          $qu .= "Passwort1 = '".$xpasswort."'";
          $qu .= $tail;
          Ein mysql_error() hätte es Dir sofort gesagt

          Kommentar


          • #6
            Hmm... also die hab ich hinzugefügt und mir die Daten ausgeben lassen:

            PHP-Code:

              $qu 
            .= "Login='".$_REQUEST['Login']."',";
               
            $qu .= "Email='".$_REQUEST['Email']."',";
               
            $qu .= "Passwort1 = '".$xpasswort."'";
               
            $qu .= $tail;

            echo 
            $qu;
            exit; 
            Da gibt er mir auch alles aus, aber in die Datenbank schreiben tut ers trotzdem nicht.

            Kommentar


            • #7
              ja nach exit wird auch das script verlassen.

              Kommentar


              • #8
                ja schon klar... das kommentier ich ja im normalfall aus... aber habe trotzdem kein eintrag in der db

                vll liegts ja auch an der deklaration? also übertragen werden solls in die datenbank cocktailuser, dort in die tabelle "nutzer", die die spalten "ID, Login, Passwort, Email" besitzt

                Kommentar


                • #9
                  Also ich hab das jetzt mal modifziziert... nur das wichtigste, ohne das ganze Benutzer existiert schon und update zeug...
                  Da gibt er mir auch die richtigen Daten aus, überträgt sie nach wie vor nicht.
                  Wenn ich das andere wie oben aber drin lasse, gibt er mir
                  "insert into nutzer Login'...' , Passwort'...', Email'...' " mit aus... das dürfte doch eigentlich nicht sein?!


                  PHP-Code:
                  <?
                  include "inc/dbaccess.inc.php";

                  if ($_REQUEST['Passwort1']!=$_REQUEST['Passwort2'])
                  {

                    header("Location: registrieren.php?ID=".$_REQUEST['ID']."&Error=2");
                     exit;
                  }

                  $xpasswort = crypt($_REQUEST['Passwort1'],"AB");


                  if ($_REQUEST['ID']!= 0)
                  {

                     $qu = "insert into nutzer ";
                     $tail = ""; }



                     $qu .= "Login='".$_REQUEST['Login']."',";
                     $qu .= "Email='".$_REQUEST['Email']."',";
                     $qu .= "Passwort = '".$xpasswort."'";
                     $qu .= $tail;

                  mysql_query($qu);

                  header("Location: index_cocktail.php");
                  exit;

                   ?>

                  Kommentar


                  • #10
                    Wenn ich das andere wie oben aber drin lasse, gibt er mir
                    "insert into nutzer Login'...' , Passwort'...', Email'...' " mit aus... das dürfte doch eigentlich nicht sein?!
                    Du machst ja ein ...

                    PHP-Code:
                    echo $qu

                    Kommentar


                    • #11
                      was sagt denn
                      mysql_query($qu) or die(mysql_error());

                      Kommentar


                      • #12
                        You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Login='mmm',Email='mmm',Passwort = 'ABPUa9QdoShnI'' at line 1

                        Kommentar


                        • #13
                          die anführungszeichen stimmen nicht ganz.

                          Kommentar


                          • #14
                            dann lass Dir mal $qu ausgeben und zeigs mal her

                            Kommentar


                            • #15
                              $qu = "insert into nutzer "; hier fehlt das schlüsselwort SET

                              Kommentar

                              Lädt...
                              X