36525-vm/contact_handler.php
Flatlogic Bot 88faa8fb09 V1
2025-12-01 07:37:01 +00:00

59 lines
1.8 KiB
PHP

<?php
require_once __DIR__ . '/db/config.php';
require_once __DIR__ . '/mail/MailService.php';
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'error' => 'Method Not Allowed']);
exit;
}
$name = $_POST['name'] ?? '';
$email = $_POST['email'] ?? '';
$phone = $_POST['phone'] ?? '';
$message = $_POST['message'] ?? '';
if (empty($name) || empty($email) || empty($message)) {
http_response_code(400);
echo json_encode(['success' => false, 'error' => 'Please fill in all required fields.']);
exit;
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
http_response_code(400);
echo json_encode(['success' => false, 'error' => 'Invalid email format.']);
exit;
}
$pdo = db();
if (!$pdo) {
http_response_code(500);
echo json_encode(['success' => false, 'error' => 'Database connection failed.']);
exit;
}
try {
$stmt = $pdo->prepare("INSERT INTO leads (name, email, phone, message) VALUES (?, ?, ?, ?)");
$stmt->execute([$name, $email, $phone, $message]);
} catch (PDOException $e) {
http_response_code(500);
error_log('DB Insert Error: ' . $e->getMessage());
echo json_encode(['success' => false, 'error' => 'An error occurred while saving your message.']);
exit;
}
$contactEmailResult = MailService::sendContactMessage($name, $email, $message);
if (empty($contactEmailResult['success'])) {
// Log the error, but don't block the user. The lead is already saved.
error_log("Failed to send contact form email: " . ($contactEmailResult['error'] ?? 'Unknown error'));
}
if (!headers_sent()) {
header('Content-Type: application/json');
}
echo json_encode(['success' => true, 'message' => 'Thank you for your message! We will get back to you shortly.']);