48 lines
1.7 KiB
PHP
48 lines
1.7 KiB
PHP
|
|
<?php
|
|
ini_set('display_errors', 0); // Do not display errors to the user
|
|
error_reporting(E_ALL);
|
|
|
|
require_once __DIR__ . '/mail/MailService.php';
|
|
|
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
|
$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);
|
|
$error_message = '';
|
|
|
|
// Server-side validation
|
|
if (empty($name)) {
|
|
$error_message = 'Name is required.';
|
|
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
|
$error_message = 'Invalid email format.';
|
|
} elseif (empty($message)) {
|
|
$error_message = 'Message is required.';
|
|
}
|
|
|
|
if (!empty($error_message)) {
|
|
header('Location: index.php?status=error&msg=' . urlencode($error_message) . '#contact');
|
|
exit;
|
|
}
|
|
|
|
// Use MailService to send the email
|
|
// The recipient is determined by the MAIL_TO environment variable as per instructions
|
|
$subject = "New Contact Form Submission from {$name}";
|
|
$res = MailService::sendContactMessage($name, $email, $message, null, $subject);
|
|
|
|
if (!empty($res['success'])) {
|
|
header('Location: index.php?status=success#contact');
|
|
exit;
|
|
} else {
|
|
// Log error internally if possible, and show a generic error to the user
|
|
error_log('MailService Error: ' . $res['error']);
|
|
$error_message = 'Could not send message. Please try again later.';
|
|
header('Location: index.php?status=error&msg=' . urlencode($error_message) . '#contact');
|
|
exit;
|
|
}
|
|
} else {
|
|
// Redirect to home if accessed directly
|
|
header('Location: index.php');
|
|
exit;
|
|
}
|