prepare("SELECT id FROM users WHERE username = ? OR email = ?"); $stmt->execute([$username, $email]); if ($stmt->fetch()) { set_flash_message('Username or email already exists.', 'danger'); header('Location: signup.php'); exit(); } // --- Create User --- $password_hash = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (username, email, password_hash, display_name) VALUES (?, ?, ?, ?)"); try { $stmt->execute([$username, $email, $password_hash, $username]); $user_id = $pdo->lastInsertId(); // Log the user in $_SESSION['user_id'] = $user_id; $_SESSION['username'] = $username; set_flash_message('You have successfully registered. Please complete your profile.', 'success'); // Redirect to profile setup header('Location: profile_setup.php'); exit(); } catch (PDOException $e) { set_flash_message('Database error. Please try again.', 'danger'); error_log("Signup DB Error: " . $e->getMessage()); header('Location: signup.php'); exit(); }