Registrierung
+Erstelle einen Account, um deine Wunschliste zu verwalten und Deals schneller zu speichern.
+-
+
+
+
+
Schon registriert? Einloggen
+ +diff --git a/assets/images/logo.png b/assets/images/logo.png index 71890b6..2179032 100644 Binary files a/assets/images/logo.png and b/assets/images/logo.png differ diff --git a/login.php b/login.php index 30c2008..eb91a5d 100644 --- a/login.php +++ b/login.php @@ -22,6 +22,11 @@ if (!$conn) { // 2) POST-Verarbeitung VOR jeglicher Ausgabe $loginError = null; +$loginInfo = null; + +if (isset($_GET['registered']) && $_GET['registered'] === '1') { + $loginInfo = 'Registrierung erfolgreich. Du kannst dich jetzt einloggen.'; +} if ($_SERVER['REQUEST_METHOD'] === 'POST') { $uname = trim(isset($_POST['uname']) ? $_POST['uname'] : ''); @@ -33,8 +38,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { // Login ist SELECT, mit Prepared Statement (sicher) und ?-Platzhalter $stmt = mysqli_prepare( - $conn, - "SELECT displayName, passwordHash FROM users WHERE displayName = ? LIMIT 1" + $conn, + "SELECT userID, displayName, passwordHash FROM users WHERE displayName = ? LIMIT 1" ); if (!$stmt) { @@ -51,17 +56,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Optional: Rehash, falls Algorithmus/Cost geändert wurde if (password_needs_rehash($user['passwordHash'], PASSWORD_DEFAULT)) { $newHash = password_hash($pw, PASSWORD_DEFAULT); - $upd = mysqli_prepare($conn, "UPDATE user SET passwordHash = ? WHERE id = ?"); + $upd = mysqli_prepare($conn, "UPDATE users SET passwordHash = ? WHERE userID = ?"); if ($upd) { - $id = (int)$user['id']; - mysqli_stmt_bind_param($upd, "si", $newHash, $id); + $userID = (int)$user['userID']; + mysqli_stmt_bind_param($upd, "si", $newHash, $userID); mysqli_stmt_execute($upd); mysqli_stmt_close($upd); } } - $_SESSION['user_id'] = (int)$user['id']; - $_SESSION['username'] = $user['un']; + $_SESSION['user_id'] = (int)$user['userID']; $_SESSION['displayName'] = $user['displayName']; mysqli_stmt_close($stmt); @@ -89,6 +93,10 @@ include 'header.php';
Melde dich an, um deine Wunschliste zu verwalten und Deals schneller zu speichern.
+ + + + @@ -110,7 +118,7 @@ include 'header.php'; diff --git a/productpage.php b/productpage.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/productpage.php @@ -0,0 +1 @@ + '', + 'displayName' => '' +]; + +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $email = trim((string)(isset($_POST['email']) ? $_POST['email'] : '')); + $displayName = trim((string)(isset($_POST['displayName']) ? $_POST['displayName'] : '')); + $pw = (string)(isset($_POST['pw']) ? $_POST['pw'] : ''); + $pw2 = (string)(isset($_POST['pw2']) ? $_POST['pw2'] : ''); + + $values['email'] = $email; + $values['displayName'] = $displayName; + + // Validierung + if ($email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) { + $errors[] = 'Bitte eine gültige E-Mail-Adresse eingeben.'; + } + + if ($displayName === '' || mb_strlen($displayName) < 3 || mb_strlen($displayName) > 50) { + $errors[] = 'Bitte einen Benutzernamen mit 3–50 Zeichen eingeben.'; + } + + if ($pw === '' || mb_strlen($pw) < 8) { + $errors[] = 'Bitte ein Passwort mit mindestens 8 Zeichen wählen.'; + } + + if ($pw !== $pw2) { + $errors[] = 'Die Passwörter stimmen nicht überein.'; + } + + // Duplicate-Checks + if (!$errors) { + $stmt = mysqli_prepare($conn, 'SELECT userID FROM users WHERE email = ? LIMIT 1'); + if (!$stmt) { + $errors[] = 'Datenbankfehler.'; + } else { + mysqli_stmt_bind_param($stmt, 's', $email); + mysqli_stmt_execute($stmt); + $result = mysqli_stmt_get_result($stmt); + if ($result && mysqli_fetch_assoc($result)) { + $errors[] = 'Diese E-Mail ist bereits registriert.'; + } + mysqli_stmt_close($stmt); + } + } + + if (!$errors) { + $stmt = mysqli_prepare($conn, 'SELECT userID FROM users WHERE displayName = ? LIMIT 1'); + if (!$stmt) { + $errors[] = 'Datenbankfehler.'; + } else { + mysqli_stmt_bind_param($stmt, 's', $displayName); + mysqli_stmt_execute($stmt); + $result = mysqli_stmt_get_result($stmt); + if ($result && mysqli_fetch_assoc($result)) { + $errors[] = 'Dieser Benutzername ist bereits vergeben.'; + } + mysqli_stmt_close($stmt); + } + } + + // Insert + if (!$errors) { + $hash = password_hash($pw, PASSWORD_DEFAULT); + $stmt = mysqli_prepare( + $conn, + 'INSERT INTO users (email, passwordHash, displayName, isActive, createdAt) VALUES (?, ?, ?, 1, NOW())' + ); + + if (!$stmt) { + $errors[] = 'Datenbankfehler.'; + } else { + mysqli_stmt_bind_param($stmt, 'sss', $email, $hash, $displayName); + $ok = mysqli_stmt_execute($stmt); + mysqli_stmt_close($stmt); + + if ($ok) { + mysqli_close($conn); + header('Location: login.php?registered=1'); + exit; + } + + $errors[] = 'Registrierung fehlgeschlagen.'; + } + } +} + +include 'header.php'; +?> + + +Erstelle einen Account, um deine Wunschliste zu verwalten und Deals schneller zu speichern.
+Schon registriert? Einloggen
+ +