prepare("SELECT id FROM servers WHERE invite_code = ?"); $stmt->execute([$invite_code]); $server = $stmt->fetch(); if ($server) { $stmt = db()->prepare("INSERT IGNORE INTO server_members (server_id, user_id) VALUES (?, ?)"); $stmt->execute([$server['id'], $user_id]); header('Location: index.php?server_id=' . $server['id']); exit; } else { die("Invalid invite code."); } } $name = $_POST['name'] ?? ''; if ($name) { try { $db = db(); $db->beginTransaction(); // Create server $invite_code = substr(strtoupper(md5(uniqid())), 0, 8); $stmt = $db->prepare("INSERT INTO servers (name, owner_id, invite_code) VALUES (?, ?, ?)"); $stmt->execute([$name, $user_id, $invite_code]); $server_id = $db->lastInsertId(); // Add owner as member $stmt = $db->prepare("INSERT INTO server_members (server_id, user_id) VALUES (?, ?)"); $stmt->execute([$server_id, $user_id]); // Create default channel $stmt = $db->prepare("INSERT INTO channels (server_id, name, type) VALUES (?, 'general', 'text')"); $stmt->execute([$server_id]); $db->commit(); header('Location: index.php?server_id=' . $server_id); exit; } catch (Exception $e) { $db->rollBack(); die("Error creating server: " . $e->getMessage()); } } } header('Location: index.php');