Formulaire de contact sécurisé
Posté : 05 juil. 2014, 23:28
Bonjour à tous.
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.
Cordialement.
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.