PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Daten werden nicht in phpmyadmin übernommen (https://www.php-resource.de/forum/php-developer-forum/105453-daten-werden-nicht-in-phpmyadmin-uebernommen.html)

laura2608 20-01-2016 00:11

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, :pw)";

$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(':pw', $_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)

?>

h3ll 20-01-2016 00:14

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.

laura2608 20-01-2016 00:24

Zitat:

Zitat von h3ll (Beitrag 672180)
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? :)

h3ll 20-01-2016 00:34

Mit einer if-Bedingung.

PHP-Code:

$success $stmt->execute();

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



laura2608 20-01-2016 00:40

Passiert leider trotzdem nix in der Datenbank.. :(

h3ll 20-01-2016 00:45

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

laura2608 20-01-2016 19:06

Hat mit deiner Hilfe jetzt geklappt!
Vielen Dank! :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:06 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG