Daten werden nicht in die Datenbank eingetragen ( PDO Statements)

  • Hallo alle zusammen,


    ich finde es einfach nicht heraus... Ich habe schon sehr lange im Internet gesucht, selbst meinen ganzen Code nachkontrolliert aber ich kriege es einfach nicht hin. Meine letzte Möglichkeit und hoffentlich auch die beste, ist nun einen Thread zu verfassen damit ihr mir vielleicht helfen könnt.


    Also, ich habe mir ein einfaches Register gebaut... Man hat insgesamt 7 Felder wo man was eintragen muss und diese werden dann durch klicken auf den Registrations- "button" eingefügt. Ich zeige euch jetzt nur das Insert statement, denn da sollte der Fehler auch sein.



    Ich hoffe mir kann einer Helfen... Beim Abschicken sagt er auch das die Registration erfolgreich war...


    Mit freundlichen Grüßen,


    Fabian Hammers.

  • Hey,


    bitte halte dich an das Eingabe-Verarbeitung-Ausgabe-Prinzip. Siehe auch : https://php-de.github.io/jumpto/eva-prinzip/


    Weist du was du da machst ? Der Code sieht grausam aus.


    Bei Insert Into tust du die ganzen daten in die datenbank eintragen nicht auswählen und sozusagen herausziehen.

    Dann ist der Teil schonmal meiner Ansicht nach Käse : $ctrl_register = $insertRegister->fetch(); 


    Dann folgenden Zeilen:

    PHP
    $insertRegister = $db->prepare("INSERT INTO tbl_logindata (username, password, email, firstname, lastname, birthday, gender) VALUES (':username', ':pw', ':email', ':firstname', ':lastname', ':date', ':geschlecht')");
                        $result_register = $insertRegister->execute(array('username' => $username, 'password' => $pw, 'email' => $email, 'firstname' => $firstname, 'lastname' => $lastname, 'birthday' => $date, 'gender' => $geschlecht));


    Dort hast du bei execute immer das : vor den Platzhaltern welchen den Wert der Variablen zugewiesen werden vergessen.


    Hier ist ein Ansatz mit Insert Into bei einem Registriervorgang:


    Was ich dir raten würde, ist dabei noch ein extra zufälligen hashwert zu erstellen, z.b. aus dem namen oder so, und dann fügst du diesen hashwert deinem Link als Parameter an : deineseite/registriervorgang_abschluss.php?hashwert . Dann würde ich dem jenigen eine E-Mail senden wo er, bevor er sich anmelden kann, noch den Link bestätigen muss. Dann würde ich auf dieser Abschlusseite denn erstellten hashwert der an die email gehongen worden ist aus der db ziehen, und wenn jemand mit diesem link auf die seite kommt, den Parameter im Link auslesen und mit dem in der Datenbank vergleichen.


    Ebenso natürlich vor dem Insert Into, muss ein Select-Statement erstellt werden, welches überprüft ob schon ein benutzer mit dem Namen regestriert ist, und wenn ja fehlermeldung ausgeben.


    Stef

Jetzt mitmachen!

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