J'essaie actuellement de créer nu formulaire de contact sécurisé, mais l'envoie ne se fait pas et je n'ai pas d'erreur PHP apparente.
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
//If the form is submitted
if(isset($_POST['btn-submit-form-contact'])) {
//Check to make sure sure that a valid email address is submitted
if(trim($_POST['email']) == '') {
$hasError = true;
} else if (!filter_var( trim($_POST['email'], FILTER_VALIDATE_EMAIL ))) {
$hasError = true;
} else {
$email = trim($_POST['email']);
}
//Check to make sure that the subject field is not empty
if(trim($_POST['subject']) == '') {
$hasError = true;
} else {
$subject = trim($_POST['subject']);
}
//Check to make sure that the second name field is not empty
if(trim($_POST['contact_second_name']) == '') {
$hasError = true;
} else {
$second_name = trim($_POST['contact_second_name']);
}
//Check to make sure that the first name field is not empty
if(trim($_POST['contact_first_name']) == '') {
$hasError = true;
} else {
$first_name = trim($_POST['contact_first_name']);
}
//Check to make sure comments were entered
if(trim($_POST['message']) == '') {
$hasError = true;
} else {
if(function_exists('stripslashes')) {
$comments = stripslashes(trim($_POST['message']));
} else {
$comments = trim($_POST['message']);
}
}
//If there is no error, send the email
if(!isset($hasError)) {
$mail = '[email protected]'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//Déclaration des messages au format texte et au format HTML.
$message_html = "<html><head></head><body>".$_POST['message']."</body></html>";
//Création de la boundary
$boundary = "-----=".md5(rand());
//Définition du sujet.
$sujet = $_POST['subject'];
//
//Création du header de l'e-mail.
$header = "From: \"".$_POST['contact_first_name'] .$_POST['contact_second_name']."\"<".$email.">".$passage_ligne;
$header.= "Reply-to: \"".$_POST['contact_first_name'] .$_POST['contact_second_name']."\"<".$email.">".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "X-Priority: 3".$passage_ligne;
$header.= "X-Confirm-Reading-To: ".$email;
$header.= "Content-Type: text/html; charset=\"utf8\"".$passage_ligne."boundary=\"$boundary\"";
//
//Création du message.
$message = $message_html;
//
//Ajout du message au format HTML
$message.= $passage_ligne.$message_html.$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//
/* Expression régulière permettant de vérifier qu'aucun en-tête n'est inséré dans nos champs */
$regex_head = '/[\n\r]/';
/* On vérifie qu'il n'y a aucun header dans les champs */
if (preg_match($regex_head, $email)
|| preg_match($regex_head, $_POST['contact_first_name'])
|| preg_match($regex_head, $_POST['contact_second_name'])
|| preg_match($regex_head, $_POST['subject'])
|| preg_match($regex_head, $_POST['message']))
{
$alert = '<span class="help-block">En-têtes interdites dans les champs du formulaire</span>';
}
else
{
/* Si le formulaire n'est pas posté de notre site on renvoie vers la page d'accueil */
if ($_SERVER['HTTP_REFERER'] != 'http://www.lucasfrugier.fr/?page=contact.php')
{
header('Location: http://www.lucasfrugier.fr/');
}
else
{
//Envoi de l'e-mail.
mail($mail,$sujet,$header,$message);
}
}
/* On affiche l'erreur s'il y en a une */
if (!empty($alert))
{
echo $alert;
}
}
}
?>
Si quelqu'un pouvait m'éclaircir ce ne serait pas de refus.Cordialement.