Daten werden nicht in phpmyadmin übernommen

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

  • Daten werden nicht in phpmyadmin übernommen

    Hallo ihr,

    ich hab schon lange das Problem, dass die eingetragen Formulardaten einfach nicht in die Datenbank übernommen werden. Die ID habe ich auf Auto Increment gestellt.
    Hier mein Formular:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    </head>

    <h1> #Registrieren </h1>

    <body>
    <h2> Noch nicht an Bord? Dann registriere dich jetzt!</h2> <br>

    <form action="register.php" method="post">
    <br>
    <input type="text" name="vorname" placeholder="Dein Vorname:" size="50" maxlength="50"> <br>
    <br>
    <input type="text" name="nachname" placeholder="Dein Nachname:" size="50" maxlength="50"> <br>
    <br>
    <input type="text" name="benutzername" placeholder=" Dein Benutzername (max. 30 Zeichen):"
    size="50" maxlength="50"> <br>
    <br>
    <input type="email" name="email" placeholder="Deine E-Mail-Adresse:" size="50" maxlength="100"> <br>
    <br>
    <input type="password" name="pw" placeholder="Dein Passwort (max. 25 Zeichen):"
    size="50" maxlength="50" ><br>
    <br>
    <input type="password" name="pw2" placeholder="Bestätige dein Passwort:"
    size="50" maxlength="50"><br><br>

    <input type="submit" value="Registrieren">

    </form>

    </body>
    </html>

    und hier die register.php:
    <?php
    include ("db-connection.php");

    if (isset($_POST['vorname'])
    and isset($_POST['nachname'])
    and isset($_POST['benutzername'])
    and isset($_POST['email'])
    and isset($_POST['pw'])
    and isset ($_POST['pw2'])) {

    }
    else {
    echo ("Bitte füllen Sie alle Felder aus.");
    exit;
    }

    $benutzername=$_POST["benutzername"];
    $pw=$_POST["pw"];
    $algo="haval160,4";
    $hashpw=hash($algo,$pw);

    $sql = "INSERT INTO benutzer(id, vorname, nachname, benutzername, email, pw)
    VALUES (NULL, :vorname, :nachname, :benutzername, :email, w)";

    $stmt = $db->prepare($sql);
    $stmt->bindParam('NULL', $_POST['id']);
    $stmt->bindParam(':vorname', $_POST['vorname']);
    $stmt->bindParam(':nachname', $_POST['nachname']);
    $stmt->bindParam(':benutzername', $_POST['benutzername']);
    $stmt->bindParam(':email', $_POST['email']);
    $stmt->bindParam('w', $_POST['hashpw']);
    $stmt->execute();

    #Session starten
    session_start();
    $_SESSION['benutzer_id'] = $id;
    $_SESSION['login'] = "1";

    #Weiterleitung zum Account
    header ('Location:account.html');

    ?>

    Und falls es was damit zu tun hat, die db-connection.php

    <?php
    $dsn = "mysql:dbhost=localhost;dbname=webprojekt";
    $dbuser = "root";
    $dbpass = "";
    $db = new PDO($dsn,$dbuser,$dbpass)

    ?>

  • #2
    Du prüfst auch überhaupt nicht, ob die Datenbankabfrage erfolgreich war. Du führst einfach nur die Funktionen aus und der Rückgabewert ist dir egal.

    Kommentar


    • #3
      Zitat von h3ll Beitrag anzeigen
      Du prüfst auch überhaupt nicht, ob die Datenbankabfrage erfolgreich war. Du führst einfach nur die Funktionen aus und der Rückgabewert ist dir egal.
      wie überprüf ich das denn?

      Kommentar


      • #4
        Mit einer if-Bedingung.

        PHP-Code:
        $success $stmt->execute();

        if (! 
        $success) {
            echo 
        'Fehler: ';
            
        print_r($stmt->errorInfo);

        Kommentar


        • #5
          Passiert leider trotzdem nix in der Datenbank..

          Kommentar


          • #6
            Hast du jetzt schon geprüft, was in $success steht?

            Kommentar


            • #7
              Hat mit deiner Hilfe jetzt geklappt!
              Vielen Dank!

              Kommentar

              Lädt...
              X