8791 sujets

Développement web côté serveur, CMS

Bonjour à tous, je sais très bien que beaucoup de sujets ont déjà été ouvert sur ce forum, mais je n'en ai pas trouvé qui m'a permit de corriger mon erreur.

Mon problème :
J'ai une fonction qui permet d'envoyer les infos d'un formulaire vers un mail et aussi récupérer les infos sur une autre page. Lorsque je reçois les infos les é, è, ç... n'apparaissent pas bien, ils se changent en é ... Sauf que sur l'autre page du site ou je récupère les infos il n'y a pas ce problème d'accents.

Si quelqu'un arrive à m'aider... Voici mon code :

Sur toutes mes pages il y a le code HTML :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>


Sur la page qui reçois les infos :
$nom = htmlentities($_POST['nom']);
		$prenom = htmlentities($_POST['prenom']);
		$societe = htmlentities($_POST['societe']);
		$email = htmlentities($_POST['email']);
		$tel = htmlentities($_POST['tel']);
		$message = htmlentities($_POST['message']);
		
		$mailSubject = utf8_decode($mailSubject) ;
        $mailBody = utf8_decode($mailBody) ;
        
		$mailTo = 'xxx@xxx.com' ;
        $mailSubject = "Demande de devis site de : ".$nom." !" ;
        $mailBody = " Nom: ".$nom."\n Prénom: ".$prenom."\n Société: ".$societe."\n Email: ".$email."\n Téléphone: ".$tel."\n Message: ".$message ;
        $mailHeaders = "From : Site php_train\n" ;
        if (mail($mailTo, $mailSubject, $mailBody, $mailHeaders))
        {
        echo "<p>Votre demande a bien été prise en compte Mr/Mme : <b>".$nom."</b>.</p>" ;
		echo "<p>Merci pour votre proposition, je vous répondrai dans les plus bref délais !</p>" ;
        }
        else
        {
            echo "Désolé, il y a eu une erreur, le courrier 
            n'a pas pu être envoyé, 
            merci de m'écrire à l'adresse : <b>xxx@yyy.com" ;
        }


Si quelqu'un voit ou j'ai pu faire une erreur ce serait gentil de m'aider. Je suis intégrateur en temps normal, mais je veux progressé en développement seulement quelques petits problèmes me bloquent.

Merci beaucoup Smiley smile
Modifié par ice_tea12 (03 Jan 2013 - 14:17)
Salut,

Si tu ne veux pas transformer t'es lettre en entité html n'utilise pas htmlentities() ou alors ajoute des informations pour indiquer que le mail est en html.

Les utf8_decode() sur $mailSubject et $mailBody sont inutiles (ou au mauvais endroit ?) car ces 2 variables sont écrasés ensuite. Autant envoyer le mail en utf-8 en ajoutant une en-tête dedans.