prepare('SELECT role FROM users WHERE id = ?'); $stmt->execute([$_SESSION['user_id']]); $user_role = $stmt->fetchColumn(); } if (!isset($_GET['id'])) { header('Location: communities.php'); exit; } $discussion_id = $_GET['id']; $user_id = $_SESSION['user_id']; $pdo = db(); // Fetch discussion $stmt = $pdo->prepare('SELECT * FROM discussions WHERE id = ?'); $stmt->execute([$discussion_id]); $discussion = $stmt->fetch(); if (!$discussion) { header('Location: communities.php'); exit; } // Fetch user role $stmt = $pdo->prepare('SELECT role FROM users WHERE id = ?'); $stmt->execute([$user_id]); $user_role = $stmt->fetchColumn(); // Check if user is authorized to edit if ($discussion['user_id'] != $user_id && $user_role != 'leader') { header('Location: discussion.php?id=' . $discussion_id); exit; } $title = $discussion['title']; $content = $discussion['content']; $errors = []; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $title = trim($_POST['title'] ?? ''); $content = trim($_POST['content'] ?? ''); if (empty($title)) { $errors[] = 'Title is required'; } if (empty($content)) { $errors[] = 'Content is required'; } if (empty($errors)) { try { $stmt = $pdo->prepare('UPDATE discussions SET title = ?, content = ? WHERE id = ?'); $stmt->execute([$title, $content, $discussion_id]); header('Location: discussion.php?id=' . $discussion_id); exit; } catch (PDOException $e) { $errors[] = 'Database error: ' . $e->getMessage(); } } } ?>