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)
?>
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)
?>
Kommentar