Files
Le-site-de-ma-mamounette/public/contact.php
T
Shaz a343bb23e9
Build & Deploy / build-push-deploy (push) Failing after 5s
en attendant les tarifs
2026-06-23 00:01:27 +02:00

63 lines
2.3 KiB
PHP

<?php
header('Content-Type: application/json; charset=utf-8');
header('X-Content-Type-Options: nosniff');
// Autoriser uniquement les requêtes POST
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Méthode non autorisée.']);
exit;
}
// Protection anti-spam (honeypot)
if (!empty($_POST['website'])) {
http_response_code(400);
echo json_encode(['success' => false, 'message' => 'Spam détecté.']);
exit;
}
// Récupération et nettoyage des champs
$nom = trim(strip_tags($_POST['nom'] ?? ''));
$email = trim(strip_tags($_POST['email'] ?? ''));
$message = trim(strip_tags($_POST['message'] ?? ''));
// Validation
$errors = [];
if (empty($nom)) $errors[] = 'Le nom est requis.';
if (empty($email)) $errors[] = "L'adresse email est requise.";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) $errors[] = "L'adresse email n'est pas valide.";
if (empty($message)) $errors[] = 'Le message est requis.';
if (strlen($message) > 5000) $errors[] = 'Le message est trop long (5000 caractères max).';
if (!empty($errors)) {
http_response_code(422);
echo json_encode(['success' => false, 'message' => implode(' ', $errors)]);
exit;
}
// Destinataire
$to = 'contact@la-maison-de-cecile.fr';
$subject = '=?UTF-8?B?' . base64_encode('[La Maison de Cécile] Message de ' . $nom) . '?=';
// Corps du mail
$body = "Vous avez reçu un nouveau message via le formulaire de contact.\n\n";
$body .= "Nom : {$nom}\n";
$body .= "Email : {$email}\n";
$body .= "Message:\n{$message}\n";
// En-têtes
$headers = "From: =?UTF-8?B?" . base64_encode($nom) . "?= <no-reply@la-maison-de-cecile.fr>\r\n";
$headers .= "Reply-To: {$email}\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$success = mail($to, $subject, base64_encode($body), $headers);
if ($success) {
echo json_encode(['success' => true, 'message' => 'Votre message a bien été envoyé. Nous vous répondrons sous 24h.']);
} else {
http_response_code(500);
echo json_encode(['success' => false, 'message' => "Une erreur s'est produite. Veuillez réessayer ou nous contacter par téléphone."]);
}