Petit probleme de formatage de texte dans un email [Résolu]

Signaler
Messages postés
40
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
19 février 2010
-
Messages postés
40
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
19 février 2010
-
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

Messages postés
126
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
16 octobre 2010

$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.
Messages postés
40
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
19 février 2010

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); 

?>

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
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 -
Messages postés
40
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
19 février 2010

j'ai essayer mais c'est encore pire avec un htmlentities.... alors voilas j'ai opté pour cette solution ...
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
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 -
Messages postés
40
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
19 février 2010

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 !!

+++
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
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 -
Messages postés
40
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
19 février 2010

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 ....