Salut à tous!
Pour un site professionnel, je développe un formulaire de contact, avec des champs texte et des cases à cocher. Une fois ce formulaire rempli, le destinataire reçoit un courriel au format HTML qui reprend les données du formulaire.
Les champs texte sont correctement restitués. En revanche, les cases cochées ne le sont plus dans le courriel que reçoit le destinataire. En outre, la feuille de style n'habille pas le courriel.
Voici le fichier contact.php.
Et voici le fichier courriel.php en question.
Quant au fichier encodage-html.php, le voici:
Aidez-moi, je vous en prie: c'est pour un site professionnel qui doit être mis en ligne le plus tôt possible.
Pour un site professionnel, je développe un formulaire de contact, avec des champs texte et des cases à cocher. Une fois ce formulaire rempli, le destinataire reçoit un courriel au format HTML qui reprend les données du formulaire.
Les champs texte sont correctement restitués. En revanche, les cases cochées ne le sont plus dans le courriel que reçoit le destinataire. En outre, la feuille de style n'habille pas le courriel.
Voici le fichier contact.php.
<?php
include ("fonctions/encodage-html.php");
// Définition des champs du formulaire (avec protection de l'adresse électronique, en remplaçant @ par *at*) et de l'état des cases à cocher
$societe=(isset($_POST['societe']))? encodage_html($_POST['societe']): '';
$nom=(isset($_POST['nom']))? strtoupper(encodage_html($_POST['nom'])): '';
$prenom=(isset($_POST['prenom']))? encodage_html($_POST['prenom']): '';
$telephone=(isset($_POST['telephone']))? $_POST['telephone']: '';
$courriel=(isset($_POST['courriel']))? str_replace('@', '*at*', $_POST['courriel']): '';
$adresse=(isset($_POST['adresse']))? encodage_html($_POST['adresse']): '';
$code_postal=(isset($_POST['code_postal']))? $_POST['code_postal']: '';
$ville=(isset($_POST['ville']))? strtoupper(encodage_html($_POST['ville'])): '';
$rendez_vous=(isset($_POST['rendez_vous']))? ' checked="checked"': '';
$devis=(isset($_POST['devis']) && !empty($devis))? ' checked="checked"': '';
$terrain_tel=(isset($_POST['terrain_tel']))? ' checked="checked"': '';
$terrain_faf=(isset($_POST['terrain_faf']))? ' checked="checked"': '';
$terrain_quali=(isset($_POST['terrain_quali']))? ' checked="checked"': '';
$terrain_web=(isset($_POST['terrain_web']))? ' checked="checked"': '';
$terrain_btob=(isset($_POST['terrain_btob']))? ' checked="checked"': '';
$terrain_btoc=(isset($_POST['terrain_btoc']))? ' checked="checked"': '';
$terrain_btor=(isset($_POST['terrain_btor']))? ' checked="checked"': '';
$volume_questionnaire=(isset($_POST['volume_questionnaire']))? encodage_html($_POST['volume_questionnaire']): '';
$observations=(isset($_POST['observations']))? encodage_html($_POST['observations']): '';
$doc_terrain_tel=(isset($_POST['doc_terrain_tel']))? ' checked="checked"': '';
$doc_terrain_faf=(isset($_POST['doc_terrain_faf']))? ' checked="checked"': '';
$doc_terrain_quali=(isset($_POST['doc_terrain_quali']))? ' checked="checked"': '';
$doc_terrain_ligne=(isset($_POST['doc_terrain_ligne']))? ' checked="checked"': '';
$doc_prestation_complementaire=(isset($_POST['doc_prestation_complementaire']))? ' checked="checked"': '';
// On vérifie si les champs obligatoires sont tous correctement renseignés
if ((isset($_POST['societe']) && !empty($societe)) && (isset($_POST['nom']) && !empty($nom)) && (isset($_POST['prenom']) && !empty($prenom)) && (isset($_POST['telephone']) && !empty($telephone)) && (isset($_POST['courriel']) && !empty($courriel)) && (!eregi("\n", $courriel) || !eregi("\r", $courriel))){
include ("biblio/courriel.php");
mail($destinataire, $objet, $message, $en_tete);
$avertissement='Le formulaire a bien été envoyé. Merci de l\'avoir rempli.';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="toolbar" content="no" />
<meta name="keywords" content="" />
<title>Contact</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body id="haut">
<div id="page">
<div id="corps">
<h1>Contact</h1>
<div id="corps-cadre">
<?php
// Affichage du formulaire
if (!isset($_POST['societe']) || empty($societe) || !isset($_POST['nom']) || empty($nom) || !isset($_POST['prenom']) || empty($prenom) || !isset($_POST['telephone']) || empty($telephone) || !isset($_POST['courriel']) || empty($courriel) || eregi("\n", $courriel) || eregi("\r", $courriel)){
?>
<p>Vous souhaitez obtenir un rendez-vous, un devis ou tout simplement une documentation…</p>
<p>Merci de bien vouloir remplir le formulaire ci-joint.</p>
<form id="contact" method="post" action="contact.php">
<ul>
<li><input class="champ-obligatoire" type="text" value="* Société" disabled="disabled" /><input id="societe" name="societe" type="text" value="<?php echo $societe ?>" /></li>
<li><input class="champ-obligatoire" type="text" value="* Nom" disabled="disabled" /><input id="nom" name="nom" type="text" value="<?php echo $nom ?>" /></li>
<li><input class="champ-obligatoire" type="text" value="* Prénom" disabled="disabled" /><input id="prenom" name="prenom" type="text" value="<?php echo $prenom ?>" /></li>
<li><input class="champ-obligatoire" type="text" value="* Téléphone" disabled="disabled" /><input id="telephone" name="telephone" type="text" value="<?php echo $telephone ?>" /></li>
<li><input class="champ-obligatoire" type="text" value="* E-mail" disabled="disabled" /><input id="courriel" name="courriel" type="text" value="<?php echo $courriel ?>" /></li>
<li><input class="champ-facultatif" type="text" value="Adresse" disabled="disabled" /><input id="adresse" name="adresse" type="text" value="<?php echo $adresse ?>" /></li>
<li><input class="champ-facultatif" type="text" value="Code postal" disabled="disabled" /><input id="code_postal" name="code_postal" type="text" value="<?php echo $code_postal ?>" /></li>
<li><input class="champ-facultatif" type="text" value="Ville" disabled="disabled" /><input id="ville" name="ville" type="text" value="<?php echo $ville ?>" /></li>
<li class="champ-divers">Je souhaite obtenir un rendez-vous de présentation <input id="rendez_vous" name="rendez_vous" type="checkbox"<?php echo $rendez_vous ?> /></li>
<li class="champ-divers">Je souhaite obtenir un devis <input id="devis" name="devis" type="checkbox"<?php echo $devis ?> /></li>
<li class="champ-divers">Terrain : téléphone <input id="terrain_tel" name="terrain_tel" type="checkbox"<?php echo $terrain_tel ?> /> face à face <input id="terrain_faf" name="terrain_faf" type="checkbox"<?php echo $terrain_faf ?> /> recrutement quali <input id="terrain_quali" name="terrain_quali" type="checkbox"<?php echo $terrain_quali ?> /> Web <input id="terrain_web" name="terrain_web" type="checkbox"<?php echo $terrain_web ?> /> B to B <input id="terrain_btob" name="terrain_btob" type="checkbox"<?php echo $terrain_btob ?> /> B to C <input id="terrain_btoc" name="terrain_btoc" type="checkbox"<?php echo $terrain_btoc ?> /> B to R <input id="terrain_btor" name="terrain_btor" type="checkbox"<?php echo $terrain_btor ?> /></li>
<li class="champ-divers">Volume de questionnaires <input id="volume_questionnaire" name="volume_questionnaire" type="text" value="<?php echo $volume_questionnaire ?>" /></li>
<li class="champ-divers">Observations <textarea id="observations" name="observations" cols="30" rows="6"><?php echo $observations ?></textarea></li>
<li class="champ-divers">Je souhaite une documentation commerciale : terrain téléphone <input id="doc_terrain_tel" name="doc_terrain_tel" type="checkbox"<?php echo $doc_terrain_tel ?> /> terrain face à face <input id="doc_terrain_faf" name="doc_terrain_faf" type="checkbox"<?php echo $doc_terrain_faf ?> /> terrain quali <input id="doc_terrain_quali" name="doc_terrain_quali" type="checkbox"<?php echo $doc_terrain_quali ?> /> terrain en ligne <input id="doc_terrain_ligne" name="doc_terrain_ligne" type="checkbox"<?php echo $doc_terrain_ligne ?> /> prestations complémentaires <input id="doc_prestation_complementaire" name="doc_prestation_complementaire" type="checkbox"<?php echo $doc_prestation_complementaire ?> /></li>
<li id="validation"><input id="envoi" type="submit" value="Envoyer" /></li>
</ul>
</form>
<?php
}
else{
?>
<p id="avertissement"><?php echo $avertissement ?></p>
<ul id="retour">
<li><a href="index.php" title="Retour à l'accueil">Retour à l'accueil</a></li>
</ul>
<?php
}
?>
</div>
</div>
</div>
</body>
</html>
Et voici le fichier courriel.php en question.
<?php
// Paramètres du courriel
$destinataire='mail@domaine.com';
$objet='Contact';
$message='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Contact</title>
<link href="<!-- Lien absolu vers le fichier styles.css -->" rel="stylesheet" type="text/css" />
</head>
<body id="haut">
<div id="corps">
<form id="contact" method="post" action="contact.php">
<ul>
<li>Société : '.$societe.'</li>
<li>Nom" : '.$nom.'</li>
<li>Prénom : '.$prenom.'</li>
<li>Téléphone : '.$telephone.'</li>
<li>E-mail : '.$courriel.'</li>
<li>Adresse : '.$adresse.'</li>
<li>Code postal : '.$code_postal.'</li>
<li>Ville : '.$ville.'</li>
<li class="champ-divers">Je souhaite obtenir un rendez-vous de présentation <input id="rendez_vous" name="rendez_vous" type="checkbox"'.$rendez_vous.' disabled="disabled" /></li>
<li class="champ-divers">Je souhaite obtenir un devis <input id="devis" name="devis" type="checkbox"'.$devis.' disabled="disabled" /></li>
<li class="champ-divers">Terrain : téléphone <input id="terrain_tel" name="terrain_tel" type="checkbox"'.$terrain_tel.' /> face à face <input id="terrain_faf" name="terrain_faf" type="checkbox"'.$terrain_faf.' /> recrutement quali <input id="terrain_quali" name="terrain_quali" type="checkbox"'.$terrain_quali.' /> Web <input id="terrain_web" name="terrain_web" type="checkbox"'.$terrain_web.' /> B to B <input id="terrain_btob" name="terrain_btob" type="checkbox"'.$terrain_btob.' /> B to C <input id="terrain_btoc" name="terrain_btoc" type="checkbox"'.$terrain_btoc.' /> B to R <input id="terrain_btor" name="terrain_btor" type="checkbox"'.$terrain_btor.' /></li>
<li class="champ-divers">Volume de questionnaires : '.$volume_questionnaire.'</li>
<li class="champ-divers">Observations :'.$observations.'</li>
<li class="champ-divers">Je souhaite une documentation commerciale : terrain téléphone <input id="doc_terrain_tel" name="doc_terrain_tel" type="checkbox"'.$doc_terrain_tel.' /> terrain face à face <input id="doc_terrain_faf" name="doc_terrain_faf" type="checkbox"'.$doc_terrain_faf.' /> terrain quali <input id="doc_terrain_quali" name="doc_terrain_quali" type="checkbox"'.$doc_terrain_quali.' /> terrain en ligne <input id="doc_terrain_ligne" name="doc_terrain_ligne" type="checkbox"'.$doc_terrain_ligne.' /> prestations complémentaires <input id="doc_prestation_complementaire" name="doc_prestation_complementaire" type="checkbox"'.$doc_prestation_complementaire.' /></li>
</ul>
</form>
</div>
</body>
</html>
';
$en_tete="Content-Type: text/html; charset=iso-8859-1\r\nMIME-Version: 1.0\r\nFrom: $courriel\r\n";
?>
Quant au fichier encodage-html.php, le voici:
<?php
function encodage_html($chaine){
$chaine=stripslashes($chaine);
$chaine=htmlentities($chaine, ENT_COMPAT);
$caracteres_non_codes=array('Œ', 'œ', 'Ÿ', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '•', '…', '‰', '‹', '›', '€', '™');
$caracteres_codes=array('Œ', 'œ', 'Ÿ', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '•', '…', '‰', '‹', '›', '€', '™');
$encodage_html=str_replace($caracteres_non_codes, $caracteres_codes, $chaine);
return $encodage_html;
}
?>
Aidez-moi, je vous en prie: c'est pour un site professionnel qui doit être mis en ligne le plus tôt possible.