-

Username:


-

UserID:

+

+ Username:


+

UserID:


+

Email:

diff --git a/login.php b/login.php index 5ca62c0..51cf64f 100644 --- a/login.php +++ b/login.php @@ -15,7 +15,8 @@ $password = "L9wUNZZ9Qkbt"; $db = "FSST"; $conn = mysqli_connect($servername, $username, $password, $db, $port); -if (!$conn) { +if (!$conn) +{ http_response_code(500); die("Datenbankfehler"); } @@ -24,40 +25,63 @@ if (!$conn) { $loginError = null; $loginInfo = null; -if (isset($_GET['registered']) && $_GET['registered'] === '1') { +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'] : ''); - $pw = isset($_POST['pw']) ? $_POST['pw'] : ''; +if ($_SERVER['REQUEST_METHOD'] === 'POST') +{ + $uname = ''; + + if (isset($_POST['uname'])) + { + $uname = trim($_POST['uname']); + } + + $pw = isset($_POST['pw']) ? $_POST['pw'] : ''; // Basic Validierung - if ($uname === '' || $pw === '') { + if ($uname === '' || $pw === '') + { $loginError = "Bitte Username und Passwort eingeben."; - } else { + } + else + { // Login ist SELECT, mit Prepared Statement (sicher) und ?-Platzhalter $stmt = mysqli_prepare( - $conn, - "SELECT userID, displayName, passwordHash FROM users WHERE displayName = ? LIMIT 1" + $conn, + "SELECT userID, displayName, passwordHash FROM users WHERE displayName = ? LIMIT 1" ); - if (!$stmt) { + if (!$stmt) + { $loginError = "Datenbankfehler."; - } else { + } + else + { mysqli_stmt_bind_param($stmt, "s", $uname); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); - $user = $result ? mysqli_fetch_assoc($result) : null; + + $user = null; + + if ($result) + { + $user = mysqli_fetch_assoc($result); + } // Passwort prüfen: Eingabe gegen gespeicherten Hash (password_hash/password_verify) - if ($user && password_verify($pw, $user['passwordHash'])) { + if ($user && password_verify($pw, $user['passwordHash'])) + { // Optional: Rehash, falls Algorithmus/Cost geändert wurde - if (password_needs_rehash($user['passwordHash'], PASSWORD_DEFAULT)) { + if (password_needs_rehash($user['passwordHash'], PASSWORD_DEFAULT)) + { $newHash = password_hash($pw, PASSWORD_DEFAULT); $upd = mysqli_prepare($conn, "UPDATE users SET passwordHash = ? WHERE userID = ?"); - if ($upd) { + if ($upd) + { $userID = (int)$user['userID']; mysqli_stmt_bind_param($upd, "si", $newHash, $userID); mysqli_stmt_execute($upd); @@ -65,7 +89,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } } - $_SESSION['user_id'] = (int)$user['userID']; + $_SESSION['user_id'] = (int)$user['userID']; $_SESSION['displayName'] = $user['displayName']; mysqli_stmt_close($stmt); @@ -93,11 +117,13 @@ include 'header.php'; -

+

- +
diff --git a/register.php b/register.php index a66daf0..494b3bf 100644 --- a/register.php +++ b/register.php @@ -15,68 +15,103 @@ $password = "L9wUNZZ9Qkbt"; $db = "FSST"; $conn = mysqli_connect($servername, $username, $password, $db, $port); -if (!$conn) { +if (!$conn) +{ http_response_code(500); die("Datenbankfehler"); } $errors = []; $values = [ - 'email' => '', - 'displayName' => '' + 'email' => '', + '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'] : ''); +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']; + } $values['email'] = $email; $values['displayName'] = $displayName; // Validierung - if ($email === '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) { + 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) { + 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) { + if ($pw === '' || mb_strlen($pw) < 8) + { $errors[] = 'Bitte ein Passwort mit mindestens 8 Zeichen wählen.'; } - if ($pw !== $pw2) { + if ($pw !== $pw2) + { $errors[] = 'Die Passwörter stimmen nicht überein.'; } // Duplicate-Checks - if (!$errors) { + if (!$errors) + { $stmt = mysqli_prepare($conn, 'SELECT userID FROM users WHERE email = ? LIMIT 1'); - if (!$stmt) { + if (!$stmt) + { $errors[] = 'Datenbankfehler.'; - } else { + } + else + { mysqli_stmt_bind_param($stmt, 's', $email); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); - if ($result && mysqli_fetch_assoc($result)) { + if ($result && mysqli_fetch_assoc($result)) + { $errors[] = 'Diese E-Mail ist bereits registriert.'; } mysqli_stmt_close($stmt); } } - if (!$errors) { + if (!$errors) + { $stmt = mysqli_prepare($conn, 'SELECT userID FROM users WHERE displayName = ? LIMIT 1'); - if (!$stmt) { + if (!$stmt) + { $errors[] = 'Datenbankfehler.'; - } else { + } + else + { mysqli_stmt_bind_param($stmt, 's', $displayName); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); - if ($result && mysqli_fetch_assoc($result)) { + if ($result && mysqli_fetch_assoc($result)) + { $errors[] = 'Dieser Benutzername ist bereits vergeben.'; } mysqli_stmt_close($stmt); @@ -84,21 +119,26 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } // Insert - if (!$errors) { + if (!$errors) + { $hash = password_hash($pw, PASSWORD_DEFAULT); $stmt = mysqli_prepare( - $conn, - 'INSERT INTO users (email, passwordHash, displayName, isActive, createdAt) VALUES (?, ?, ?, 1, NOW())' + $conn, + 'INSERT INTO users (email, passwordHash, displayName, isActive, createdAt) VALUES (?, ?, ?, 1, NOW())' ); - if (!$stmt) { + if (!$stmt) + { $errors[] = 'Datenbankfehler.'; - } else { + } + else + { mysqli_stmt_bind_param($stmt, 'sss', $email, $hash, $displayName); $ok = mysqli_stmt_execute($stmt); mysqli_stmt_close($stmt); - if ($ok) { + if ($ok) + { mysqli_close($conn); header('Location: login.php?registered=1'); exit; @@ -133,12 +173,15 @@ include 'header.php';
- +
- +