PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]); // AUTO-MIGRATION: สร้างตารางให้อัตโนมัติหากยังไม่มี $pdo->exec(" CREATE TABLE IF NOT EXISTS law_categories ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, icon VARCHAR(50) DEFAULT '⚖️', sort_order INT DEFAULT 0 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS law_articles ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, category_id INT UNSIGNED NOT NULL, title VARCHAR(255) NOT NULL, section_number VARCHAR(50) DEFAULT NULL, summary TEXT DEFAULT NULL, content LONGTEXT NOT NULL, tags VARCHAR(255) DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS consultations ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, case_code VARCHAR(20) NOT NULL UNIQUE, fullname VARCHAR(150) NOT NULL, phone VARCHAR(30) NOT NULL, email VARCHAR(100) DEFAULT NULL, service_type VARCHAR(100) NOT NULL, details TEXT NOT NULL, status ENUM('pending', 'in_progress', 'scheduled', 'completed', 'cancelled') NOT NULL DEFAULT 'pending', admin_note TEXT DEFAULT NULL, appointment_date DATETIME DEFAULT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); // SEED DEFAULT CATEGORIES $catCount = $pdo->query("SELECT COUNT(*) FROM law_categories")->fetchColumn(); if ($catCount == 0) { $pdo->exec(" INSERT INTO law_categories (name, icon, sort_order) VALUES ('กฎหมายแพ่งและพาณิชย์', '📜', 1), ('กฎหมายอาญา', '⚖️', 2), ('กฎหมายที่ดินและอสังหาริมทรัพย์', '🏡', 3), ('กฎหมายแรงงานและการจ้างงาน', '💼', 4), ('กฎหมายธุรกิจและสัญญาการค้า', '🏢', 5); INSERT INTO law_articles (category_id, title, section_number, summary, content, tags) VALUES (1, 'การทำสัญญาจะซื้อจะขายที่ดินและสิ่งปลูกสร้าง', 'ป.พ.พ. มาตรา 456', 'หลักเกณฑ์และข้อควรระวังในการทำสัญญาจะซื้อจะขาย และการวางเงินมัดจำ', 'รายละเอียดตามประมวลกฎหมายแพ่งและพาณิชย์ มาตรา 456 กำหนดให้สัญญาจะซื้อจะขายอสังหาริมทรัพย์ต้องมีหลักฐานเป็นหนังสือลงลายมือชื่อฝ่ายผู้ต้องรับผิด จึงจะสามารถฟ้องร้องบังคับคดีได้...', 'ที่ดิน, สัญญา, ซื้อขาย, มัดจำ'), (5, 'สัญญารับเหมาก่อสร้างและการคิดค่าปรับงานล่าช้า', 'สัญญาทางธุรกิจ', 'แนวทางการกำหนดงวดงาน ค่าปรับ และการตรวจรับมอบงานก่อสร้าง', 'ในการทำสัญญารับเหมาก่อสร้าง ควรกำหนดขอบเขตงานและงวดการจ่ายเงินให้สอดคล้องกับเนื้องานจริง พร้อมทั้งระบุอัตราค่าปรับต่อวันกรณีส่งมอบงานล่าช้าอย่างชัดเจน...', 'รับเหมาก่อสร้าง, สัญญาจ้าง, ค่าปรับ'); "); } } catch (PDOException $e) { die("
Database Connection Error: " . htmlspecialchars($e->getMessage()) . "
"); } // --- 2. BACKEND LOGIC CONTROLLER --- $alert_msg = ''; $alert_type = 'success'; $active_view = $_GET['view'] ?? 'portal'; // portal | admin // ACTION: ยื่นขอคำปรึกษา if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'submit_consult') { $fullname = trim($_POST['fullname'] ?? ''); $phone = trim($_POST['phone'] ?? ''); $email = trim($_POST['email'] ?? ''); $service_type = trim($_POST['service_type'] ?? ''); $details = trim($_POST['details'] ?? ''); if (!empty($fullname) && !empty($phone) && !empty($service_type)) { $case_code = 'LAW-' . strtoupper(substr(uniqid(), -6)); $stmt = $pdo->prepare("INSERT INTO consultations (case_code, fullname, phone, email, service_type, details) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$case_code, $fullname, $phone, $email, $service_type, $details]); $alert_msg = "ส่งข้อมูลเรียบร้อยแล้ว รหัสเคสของคุณคือ: {$case_code} (โปรดบันทึกไว้สำหรับตรวจสอบสถานะ)"; } else { $alert_msg = "กรุณากรอกข้อมูลสำคัญให้ครบถ้วน"; $alert_type = 'error'; } } // ACTION ADMIN: อัปเดตสถานะเคส if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'update_case') { $id = intval($_POST['id']); $status = $_POST['status']; $admin_note = trim($_POST['admin_note'] ?? ''); $appointment_date = !empty($_POST['appointment_date']) ? $_POST['appointment_date'] : null; $stmt = $pdo->prepare("UPDATE consultations SET status = ?, admin_note = ?, appointment_date = ? WHERE id = ?"); $stmt->execute([$status, $admin_note, $appointment_date, $id]); $alert_msg = "อัปเดตข้อมูลเคสเรียบร้อยแล้ว"; } // ACTION ADMIN: เพิ่มบทความกฎหมาย if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'add_article') { $category_id = intval($_POST['category_id']); $title = trim($_POST['title']); $section_number = trim($_POST['section_number'] ?? ''); $summary = trim($_POST['summary'] ?? ''); $content = trim($_POST['content'] ?? ''); $tags = trim($_POST['tags'] ?? ''); if (!empty($title) && !empty($content)) { $stmt = $pdo->prepare("INSERT INTO law_articles (category_id, title, section_number, summary, content, tags) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$category_id, $title, $section_number, $summary, $content, $tags]); $alert_msg = "เพิ่มข้อกฎหมายเข้าสู่ระบบเรียบร้อยแล้ว"; } } // ACTION ADMIN: ลบบทความกฎหมาย if (isset($_GET['del_article'])) { $pdo->prepare("DELETE FROM law_articles WHERE id = ?")->execute([intval($_GET['del_article'])]); header("Location: index.php?view=admin"); exit; } // QUERY DATA $categories = $pdo->query("SELECT * FROM law_categories ORDER BY sort_order ASC")->fetchAll(); // ข้อมูลค้นหากฎหมาย $search_q = trim($_GET['q'] ?? ''); $cat_filter = intval($_GET['category'] ?? 0); $query_sql = "SELECT a.*, c.name as category_name, c.icon as category_icon FROM law_articles a JOIN law_categories c ON a.category_id = c.id WHERE 1=1"; $params = []; if (!empty($search_q)) { $query_sql .= " AND (a.title LIKE ? OR a.summary LIKE ? OR a.tags LIKE ? OR a.section_number LIKE ?)"; $p = "%{$search_q}%"; $params = [$p, $p, $p, $p]; } if ($cat_filter > 0) { $query_sql .= " AND a.category_id = ?"; $params[] = $cat_filter; } $query_sql .= " ORDER BY a.id DESC"; $stmt = $pdo->prepare($query_sql); $stmt->execute($params); $articles = $stmt->fetchAll(); // ข้อมูลเคสที่ค้นหา $case_tracking = null; if (isset($_GET['track_code']) && !empty(trim($_GET['track_code']))) { $stmt = $pdo->prepare("SELECT * FROM consultations WHERE case_code = ? LIMIT 1"); $stmt->execute([trim($_GET['track_code'])]); $case_tracking = $stmt->fetch(); } // ข้อมูล Admin $cases = []; if ($active_view === 'admin') { $cases = $pdo->query("SELECT * FROM consultations ORDER BY created_at DESC")->fetchAll(); } ?> ระบบศูนย์รวมกฎหมาย & ที่ปรึกษากฎหมายออนไลน์
⚖️ ศูนย์กฎหมายและที่ปรึกษาคดีความ

สืบค้นข้อกฎหมาย & บริการที่ปรึกษาคดี

รวบรวมตัวบทกฎหมาย มาตราสำคัญ สาระน่ารู้ และระบบยื่นเรื่องขอคำปรึกษาตรงถึงทีมกฎหมาย

📚 คลังข้อมูลกฎหมายและบทวิเคราะห์ (ผลค้นหา: "")

พบ รายการ
ไม่พบข้อมูลกฎหมายที่ตรงกับเงื่อนไขการค้นหา

🔍 ตรวจสอบสถานะคำปรึกษา / เคส

❌ ไม่พบข้อมูลรหัสเคสนี้ในระบบ
รหัสเคส:
สถานะ: ['bg-amber-100 text-amber-800', '⏳ รอดำเนินการ'], 'in_progress' => ['bg-blue-100 text-blue-800', '🔍 กำลังตรวจสอบข้อกฎหมาย'], 'scheduled' => ['bg-purple-100 text-purple-800', '📅 นัดหมายเวลาแล้ว'], 'completed' => ['bg-emerald-100 text-emerald-800', '✅ ดำเนินการเสร็จสิ้น'], 'cancelled' => ['bg-slate-100 text-slate-600', '❌ ยกเลิก'] ]; $st = $status_map[$case_tracking['status']] ?? ['bg-slate-100 text-slate-800', $case_tracking['status']]; ?>
เวลานัดหมาย:
บันทึกข้อความจากทีมกฎหมาย:

📝 แบบฟอร์มขอรับคำปรึกษา

ข้อมูลจะถูกส่งตรงถึงทนายความและเก็บรักษาเป็นความลับ

⚙️ แผงควบคุมระบบหลังบ้าน (Admin App)

จัดการข้อมูลเคสคำปรึกษาและคลังความรู้กฎหมาย

📋 รายการเคสขอคำปรึกษาทั้งหมด ()

รหัสเคส ผู้ติดต่อ / เบอร์โทร ประเภทเรื่อง รายละเอียด วันนัด / บันทึกทนาย สถานะ จัดการ
ยังไม่มีรายการขอรับคำปรึกษา

➕ เพิ่มข้อกฎหมาย / สาระน่ารู้

📚 ข้อกฎหมายในระบบ ()