pas d'affichage de caractère spéciaux dans l'envoie de mail

Tania-tatouchka
Invité n'ayant pas de compte PHPfrance

18 sept. 2013, 15:56

Bonjour, j'ai bricolé un script pour envoyer un formulaire vers ma boîte mail. Mais à la réception les caractères spécieux (français) ne s'affichent pas correctement.

Exemple:

Nom : tania
Prénom : Tatouchka
Adresse mail : [email protected]
Message : essai caractère "é&çà èôù"

Çà fait plusieurs jours que je me bats avec mais je n'arrive pas à trouvé la solution. Est-ce que quelqu’un pourrait m'aider, svp? Merci d'avance!!!! :D

Voici mon script:

Code : Tout sélectionner

<?php session_start(); ?> <?php $cryptinstall="cryptographp.fct.php"; include $cryptinstall; ?> <?php // Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés $email_webmaster = "contact@mon_domaine.com"; $subject = "Contact"; //$fromaddress = "moi@mon_domaine.com"; // === traitement des données du formulaire ============================================================ if (isset($_POST["envoyer"])){ // le formulaire a été soumis $etat = "erreur"; // Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur // --- mise en forme des champs saisis dans le formulaire lors de sa soumission --- if (isset($_POST["email"])) { $_POST["email"]=trim(stripslashes($_POST["email"])); } if (isset($_POST["prenom"])) { $_POST["prenom"]=trim(stripslashes($_POST["prenom"])); } if (isset($_POST["message"])) { $_POST["message"]=trim(stripslashes($_POST["message"])); } // --- test de la validité des champs saisis --- if (empty($_POST["email_expediteur"])) { // il manque l'email de l'expéditeur $erreur="Saisissez votre adresse email..."; } elseif (empty($_POST["email_expediteur"])){ // l'adresse e-mail n'est pas valide $erreur="Votre adresse e-mail n'est pas valide..."; } elseif (empty($_POST["message"])) { // le message est vide $erreur="Saisissez un message..."; } elseif (empty($_POST["code"])) { // le code n'est pas saisi $erreur="Saisissez le code de sécurité..."; } else { // --- Vérification de la validité du code captcha --- if (chk_crypt($_POST['code'])) // --- tous les champs sont correctement remplis: on pourra envoyer le mail --- $etat="ok"; // --- Le code captcha n'est pas valide --- else $erreur="Code de sécurité non valide ..."; } } else { // --- le formulaire n'a pas été soumis --- $etat="attente"; } // === fin de traitement des données du formulaire ======================================================= ?> <!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <h4>Entrez vos coordonnées et votre e-mail</h4><br /> <?php if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur if ($etat=="erreur"){ //le formulaire a été soumis avec une erreur echo "<p><strong>".$erreur."</strong></p>\n"; // afficher le message d'erreur } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br /> <input class="input" type="text" name="email_expediteur" id="email_expediteur" value="<?php if (!empty($_POST["email_expediteur"])) { // l'adresse email de l'expéditeur a été saisie: la réafficher echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES); } ?>" /> </p><br /> <p><label for="nom">Nom :</label><br /> <input class="input" type="text" name="nom" id="nom" value="<?php if (!empty($_POST["nom"])) { // le titre du message a été saisi: le réafficher echo htmlspecialchars($_POST["nom"],ENT_QUOTES); } ?>" /> </p><br /> <p><label for="prenom">Prénom :</label><br /> <input class="input" type="text" name="prenom" id="prenom" value="<?php if (!empty($_POST["prenom"])) { // le titre du message a été saisi: le réafficher echo htmlspecialchars($_POST["prenom"],ENT_QUOTES); } ?>" /> </p><br /> <p><label for="message"> Message (obligatoire):</label><br /> <textarea class="textarea" name="message" id="message"><?php if (isset($_POST["message"])) { // le message a été saisi: le réafficher echo htmlspecialchars($_POST["message"],ENT_QUOTES); } ?></textarea> </p><br /> <?php dsp_crypt(0,1); ?><br /> <p> <input class="code" type="text" name="code" /> <br /><br />Entrer le code s&eacute;curit&eacute; affich&eacute; ci-dessus </p> <p> <br /> <input class="bouton" type="submit" name="envoyer" value="ENVOYER" /> </p> <p>&nbsp;</p> </form> <?php } else { // le formulaire a été soumis sans erreur, on envoie le mail //$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n"; $entete .= "MIME-Version: 1.0"; $toaddress = "contact@mon_domaine.com"; $subject = "Message du site"; $fromaddress = $_POST["email_expediteur"]; $mailcontent = "Nom : ".$_POST["nom"]."\n\n" ."Prénom : ".$_POST["prenom"]."\n\n" ."Message : ".$_POST["message"]."\n"; mail($toaddress, $subject, $mailcontent, $fromaddress); echo("Votre message a été envoyé..."); if (@mail($email_webmaster, "Message du site", $_POST["nom"], $_POST["prenom"], $_POST["email_expediteur"], $_POST["message"],$entete)){ // mail envoyé //echo "Votre message a été envoyé.<br />\n"; //echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n"; } else { // erreur lors de l'envoi du mail //echo "Un problème s'est produit lors de l'envoi du message.\n"; echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n"; } } ?> </body> </html>

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2013, 16:01


Tania-tatouchka
Invité n'ayant pas de compte PHPfrance

18 sept. 2013, 16:21

Merci, mais j'ai déjà intégré dans le code:

<head>

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

</head>

et ça ne marche pas quand même #-o

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2013, 17:24

Et la configuration d'Apache ? Et la configuration de PHP ? :)

Tania-tatouchka
Invité n'ayant pas de compte PHPfrance

18 sept. 2013, 17:26

Je ne sais pas faire :shock: ça, je ne suis pas sure que j'ai un accès pour modifier Apache et php.ini

Tania-tatouchka
Invité n'ayant pas de compte PHPfrance

18 sept. 2013, 18:39

Y-a-t-il la possibilité de gérer les caractères sans toucher Apache et php.ini?

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2013, 19:16

C'est indiqué dans le tutoriel que je t'ai passé...
header('Content-Type: text/html; charset=UTF-8');

Tania-tatouchka
Invité n'ayant pas de compte PHPfrance

18 sept. 2013, 19:25

Merci, je pense que je suis en train de y arriver! Je l'espère en tout cas!