57 lines
1.9 KiB
PHP
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.";
|
|
}
|