38961-vm/api/contact.php
2026-03-04 08:52:30 +00:00

38 lines
1.3 KiB
PHP

<?php
header('Content-Type: application/json');
require_once __DIR__ . '/../db/config.php';
require_once __DIR__ . '/../mail/MailService.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => 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.']);
}