false, 'error' => 'Invalid request method.']); exit; } $name = trim($_POST['name'] ?? ''); $email = trim($_POST['email'] ?? ''); $message = trim($_POST['message'] ?? ''); if (empty($name) || empty($email) || empty($message)) { echo json_encode(['success' => false, 'error' => 'All fields are required.']); exit; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(['success' => false, 'error' => 'Invalid email format.']); exit; } $db = db(); if (!$db) { echo json_encode(['success' => false, 'error' => 'Database connection failed.']); exit; } try { $stmt = $db->prepare("INSERT INTO contact_requests (name, email, message) VALUES (?, ?, ?)"); $stmt->execute([$name, $email, $message]); // Optional: Send email via MailService if configured if (file_exists('mail/MailService.php')) { require_once 'mail/MailService.php'; // MailService::sendContactMessage($name, $email, $message); } echo json_encode(['success' => true, 'message' => 'Thank you! Your message has been received.']); } catch (PDOException $e) { error_log("Database error: " . $e->getMessage()); echo json_encode(['success' => false, 'error' => 'Failed to save your request. Please try again later.']); }