100) { $error = 'Nom invalide.'; } elseif (!filter_var($from, FILTER_VALIDATE_EMAIL)) { $error = 'Adresse e-mail invalide.'; } elseif ($body === '' || mb_strlen($body) > 5000) { $error = 'Message vide ou trop long (max 5000 caractères).'; } } if (!$error && $contactEmail !== '') { $subjectClean = mb_encode_mimeheader( '[varlog contact] ' . mb_strimwidth($subject, 0, 100, '…'), 'UTF-8', 'B' ); $nameClean = mb_encode_mimeheader($name, 'UTF-8', 'B'); $headers = 'From: =?UTF-8?B?' . base64_encode('varlog contact') . "?= \r\n"; $headers .= "Reply-To: {$nameClean} <{$from}>\r\n"; $headers .= "Content-Type: text/plain; charset=UTF-8\r\n"; $headers .= "Content-Transfer-Encoding: 8bit\r\n"; $fullBody = "De : {$name} <{$from}>\n\n{$body}\n\n---\nEnvoyé depuis varlog"; if (@mail($contactEmail, $subjectClean, $fullBody, $headers)) { $_SESSION['contact_last_sent'] = time(); $success = true; } else { $error = 'Erreur lors de l\'envoi. Veuillez réessayer plus tard.'; } } elseif (!$error) { $error = 'Formulaire de contact non configuré.'; } } // Génère un nouveau token CSRF à chaque affichage du formulaire if (!$success) { $_SESSION['contact_csrf'] = bin2hex(random_bytes(16)); } ob_start(); ?>

Contact

Envoyez-moi un message. Votre adresse e-mail ne sera pas publiée.