8791 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un formulaire qui génère un mail (via un script PHP et PHPMailer) et quand j'utilise des caractères spéciaux dans mes champs de saisie (par exemple des éèàù j'obtiens des caractères type é ou è dans le corps du message.

Voici mon script de génération du mail :


$mail = new PHPmailer();								
$mail->IsMail();
$mail->IsHTML(true);
$mail->From=$email;
$mail->AddAddress('xxxxxxx@xxxxx.xxx');
$mail->AddReplyTo($email);	
$mail->Subject="Une recherche vient d'etre soumise";
$mail->Body="<html><body>Le $d, $prenom $nom a d&eacute;pos&eacute; la recherche suivante :<br /><u>Poste :</u> $poste<br /><u>Exp&eacute;rience :</u> $experience<br /><u>Candidature :</u> $lib_candidature<br /><u>Pr&eacute;tentions salariales :</u> $salaire<br /><u>Autre :</u> $autre<br /><u>Coordonn&eacute;es :</u> $prenom $nom<br />n&eacute; le $date_naissance<br />$tel<br />$email<br />$adresse<br />$code_postal<br />$ville</body></html>";


Existe-t-il une autre possibilité pour moi que de remplacer les éèàù par leur équivalent HTML dans chaque variable ?
J'aimerai une autre alternative parce que si le formulaire soumis ne passe pas les contrôles de saisie je dump les variables dans leur champ respectif pour que l'utilisateur n'ai pas à tout ressaisir mais juste à effectuer les corrections nécessaires.
Modifié par albator1932 (20 Jul 2010 - 12:25)
Ma page est déclarée comme suit :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Tu veux dire qu'il faut que j'écrive ça aussi dans le source html du mail que j'envoie ?
Je veux dire que tout doit être dans le même encodage : headers, meta, enregistrement des pages. Peut-être qu'il manque tout simplement un :
$mail->CharSet = 'utf-8';