false, 'message' => 'Invalid request method.']); exit; } $name = trim($_POST['name'] ?? ''); $email = trim($_POST['email'] ?? ''); $subject = trim($_POST['subject'] ?? 'New Contact Inquiry'); $message = trim($_POST['message'] ?? ''); if (empty($name) || empty($email) || empty($message)) { echo json_encode(['success' => false, 'message' => 'Please fill in all required fields.']); exit; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(['success' => false, 'message' => 'Invalid email format.']); exit; } try { $stmt = db()->prepare("INSERT INTO contacts (name, email, subject, message) VALUES (?, ?, ?, ?)"); $stmt->execute([$name, $email, $subject, $message]); // Attempt to send email via MailService if configured MailService::sendContactMessage($name, $email, $message); echo json_encode(['success' => true, 'message' => 'Message saved successfully.']); } catch (PDOException $e) { error_log($e->getMessage()); echo json_encode(['success' => false, 'message' => 'Database error. Please try again later.']); }