Lecture des messages reçus et encodage
Bonjour,
Mon formulaire de contact fonctionne bien.
Par contre certains caractères s'affichent mal.
Par exemple le "é" s'affiche: "é"
Voici le html:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <form class="cmxform" id="commentForm" method="post" action="traitement-contact.php">
<fieldset>
<p>
<label for="nom">Nom et prénom</label>
<input id="nom" name="nom" class="required" />
</p>
<p>
<label for="email">E-Mail </label>
<input id="email" name="email" class="required email" />
</p>
<p>
<label for="sujet">Sujet</label>
<input id="sujet" name="sujet" class="required" value="" />
</p>
<p>
<label for="msg">Message</label>
<textarea id="msg" name="msg" class="required" rows="5" cols="60"></textarea>
</p>
<p style="text-align:left;">
<span style="font-size:10px;font-style:italic;margin-right:150px;">Tous les champs sont obligatoires.</span>
<input class="submit" type="submit" value="Envoyer"/>
</p>
</fieldset>
</form> |
et voici le code php lorsque la page traitement-contact.php est appelé:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <?php
// récupération des données envoyées par le formulaire de contact
$nom = htmlentities($_POST['nom'], ENT_QUOTES);
$email = htmlentities($_POST['email'], ENT_QUOTES);
$sujet = htmlentities($_POST['sujet'], ENT_QUOTES);
$msg = htmlentities($_POST['msg'], ENT_QUOTES);
// suppression des slashes
$nom =stripslashes ($nom);
$email =stripslashes ($email);
$sujet=stripslashes ($sujet);
$msg=stripslashes ($msg);
/* verification des champs obligatoires */
$blnValide = TRUE;
if (empty($nom)){
$blnValide = FALSE;
}
if (empty($email)){
$blnValide = FALSE;
}
if (empty($sujet)){
$blnValide = FALSE;
}
if (empty($msg)){
$blnValide = FALSE;
}
$message = 'Ce mail a ete envoye depuis votre site par '.$nom."\r\n".'Email : '.$email."\r\n".'Sujet :'.$sujet."\r\n".'Message :'.$msg."\r\n";
?>
<!-- envoi du mail -->
<?php
$entetes ="From: " .$email."\n";
$to='contact@monsite.fr';
if ($blnValide){
mail($to, $sujet, $message, $entetes);
}else{
echo "Echec de l'envoi";
}
?> |
Un premier contrôle de validité est effectué avec JQuery.
L'encodage de la page est le suivant:
Code:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
J'ai essayé avec :
Code:
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
mais ca n'a rien changé.
Si vous connaissez une solution...