Petit probleme de formatage de texte dans un email

Résolu
TheBestFear Messages postés 40 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 19 février 2010 - 27 oct. 2009 à 10:37
TheBestFear Messages postés 40 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 19 février 2010 - 29 oct. 2009 à 10:17
Bonjour à tous, ne sachant pas trop ou poster se sujet je l'ai poster ici.

J'ai fait un formulaire de contact via flash (AS 3, sous adobe CS4) jusque la tout beigne ^^.

Je commence a faire mon code php, niquel chrome.
Et voilas que lors des tests il apparait que toutes mes lettres accentué ou caractére special son pas en format normal mais & et .... j'ai essayer les codes pour les remplacer mais pas moyen sa suprimme tout (sa remplace pas, en gros je me retrouve au bout du compte avec un email vide)

( en php je ne suis pas trés fort, il se peut que la reponse que je cherche soit super banale mais j'ai trouver aucun post en parlant)

merci

8 réponses

pcmanprogrammeur Messages postés 126 Date d'inscription dimanche 27 mars 2005 Statut Membre Dernière intervention 16 octobre 2010
27 oct. 2009 à 11:31
$sujet = utf8_decode("le sujet");

$message = "coucou";
$message = utf8_decode(stripslashes($message));
$message = stripslashes($message);
$message = nl2br($message);
$message = trim($message);
$message .= " ";

$headers = "To: ".$adresse_destination."\r\n";
$headers .= "From: ".$adresse_source."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1';

@mail($adresse, $sujet, $message, $headers);

Mon fichier source est encodé en UTF-8.
3
TheBestFear Messages postés 40 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 19 février 2010
27 oct. 2009 à 14:52
Mais j'ai rajouter deux trois petite chose qui etait necessaire :

pour ceux que sa intéresse voici mon code :




<?php

// récupération des variables et on enleve les balises html

$message = ereg_replace("<[^>]*>", "", trim(strip_tags($_POST['email'])));

// on re-encode en utf8

$message = utf8_decode(stripslashes($message));
$message = stripslashes($message); 
$message = nl2br($message); 
$message = trim($message);
$message .= " ";

//on enleve les balises restante du au formatage du texte en utf8

$message = ereg_replace("<<[^>]*>","",trim(strip_tags($message)));

//on remplace les derniers caractéres qui ne voulais pas changer

$message = ereg_replace("&amp;","&",trim(strip_tags($message)));
$message = ereg_replace("&quot;",'"',trim(strip_tags($message)));
$message = ereg_replace("&apos;","'",trim(strip_tags($message)));

//une fois tout sa fini on commence à rediger l'adresse et le sujet du mail

//on met en place les variables interne


$adresse = 'votre adresse de destination';
$sujet = utf8_decode("Ton Sujet");


//on envoi le mail

mail( $adresse, $sujet, $message); 

?>

3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
28 oct. 2009 à 00:03
Salut,

Oula, ça me parait bien complexe ton affaire.
En reprenant ton pb initial :
il apparait que toutes mes lettres accentué ou caractére special son pas en format normal mais &

Ca n'a rien à voir avec l'encodage, un simple html_entity_decode devrait suffire à la conversion des & etc ...

Et puis :
pourquoi ne pas envoyer un mail en HTML ???
pourquoi pas en UTF8 ??

... c'est beaucoup de lignes et de prise de tête pour un résultat bien moins attrayant.

Cordialement,

Kohntark -
0
TheBestFear Messages postés 40 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 19 février 2010
28 oct. 2009 à 00:07
j'ai essayer mais c'est encore pire avec un htmlentities.... alors voilas j'ai opté pour cette solution ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
28 oct. 2009 à 00:34
Si c'est encore pire c'est à coup sur qu'il y a des erreurs dans ton code, et il y en a également pas mal dans celui que tu as retenu.
Je me répète mais pourquoi ne pas envoyer le mail en HTML et UTF8 ?

Cordialement,

Kohntark -
0
TheBestFear Messages postés 40 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 19 février 2010
28 oct. 2009 à 10:28
sa sort d'un formulaire flash mais j'essayer de sortir direct en html(a partir du flash) ya tjr ces balises qui m'enerve
j'ai mm essayer de rajouter html entities apré sa marche pas sur sa je suis formel ou alor c dans le type de mes variable qu'il y a un probleme

puis se que je veu recuperer c pas un email avec la couleur et la taille du texte qui est envoyer c'est juste le texte mais ke vais continuer a chercher !!

+++
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
28 oct. 2009 à 19:09
J'ai du mal à te suivre :
Pourquoi parles tu de htmlentities alors que c'est html_entity_decode (l'inverse donc) qu'il te faut ?
Pourquoi essayer de sortir direct en HTML à partir de flash alors que tu ne veux pas de HTML ?

Tu as beau être formel html_entity_decode convertira toutes les entités HTML (& < > etc ...) en caractères normaux. Bien sur il faut l'utiliser correctement, notamment au niveau de l'encodage (3eme paramètre).

Pour supprimer les balises HTML et ne conserver alors que du texte il faut utiliser strip_tags. Le HTML doit être correct (pas de balise non fermée) au risque de ce retrouvé avec un résultat vide.

Tu devrais pouvoir régler ton problème en 4/5 lignes.


Cordialement,

Kohntark -
0
TheBestFear Messages postés 40 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 19 février 2010
29 oct. 2009 à 10:17
parceque j'ai tester un certain nombre de code
qui marchait pas !! ^^ voilas

moi le php je connais que trés peu. alor je me debrouille avec le semblant que je sait mais bon la je vais voir pour amelioré le systeme pour que sa soit moin fouilli !!

Et j'ai du mal a trouvé un bon tuto pour avoir toute les fonctions necessaire pour les emails ....
0
Rejoignez-nous