'', 'displayName' => '' ]; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $email = ''; if (isset($_POST['email'])) { $email = trim((string)$_POST['email']); } $displayName = ''; if (isset($_POST['displayName'])) { $displayName = trim((string)$_POST['displayName']); } $pw = ''; if (isset($_POST['pw'])) { $pw = (string)$_POST['pw']; } $pw2 = ''; if (isset($_POST['pw2'])) { $pw2 = (string)$_POST['pw2']; } $profilePicture = 'assets/images/profilePictures/default.png'; $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 === '' || str_length($displayName) < 3 || str_length($displayName) > 50) { $errors[] = 'Bitte einen Benutzernamen mit 3–50 Zeichen eingeben.'; } if ($pw === '' || str_length($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, profilePicture) VALUES (?, ?, ?, 1, NOW(), ?)" ); if (!$stmt) { $errors[] = 'Datenbankfehler.'; } else { mysqli_stmt_bind_param($stmt, 'ssss', $email, $hash, $displayName, $profilePicture); $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'; ?> Registrierung E-Mail Username Passwort Passwort wiederholen Schon registriert? Einloggen
Schon registriert? Einloggen