34918-vm/contact.php
2025-10-13 09:42:24 +00:00

57 lines
1.9 KiB
PHP

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
require_once 'db/config.php';
require_once 'mail/MailService.php';
$name = filter_var(trim($_POST["name"]), FILTER_SANITIZE_STRING);
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$message = filter_var(trim($_POST["message"]), FILTER_SANITIZE_STRING);
if (empty($name) || !filter_var($email, FILTER_VALIDATE_EMAIL) || empty($message)) {
http_response_code(400);
echo "Please fill out all fields and provide a valid email address.";
exit;
}
try {
$pdo = db();
$sql = "INSERT INTO contact_submissions (name, email, message) VALUES (?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$name, $email, $message]);
} catch (PDOException $e) {
http_response_code(500);
echo "Oops! Something went wrong and we couldn't send your message.";
exit;
}
$to = getenv('MAIL_TO') ?: null;
$subject = "New Contact Form Submission from $name";
$html_content = "You have received a new message from your website contact form.<br><br>".
"<strong>Name:</strong> $name<br>".
"<strong>Email:</strong> $email<br>".
"<strong>Message:</strong><br>$message";
$text_content = "You have received a new message from your website contact form.
".
"Name: $name
".
"Email: $email
".
"Message:
$message";
$result = MailService::sendMail($to, $subject, $html_content, $text_content, ['reply_to' => $email]);
if (!empty($result['success'])) {
http_response_code(200);
echo "Thank You! Your message has been sent.";
} else {
http_response_code(500);
echo "Oops! Something went wrong and we couldn't send your message.";
}
} else {
http_response_code(403);
echo "There was a problem with your submission, please try again.";
}