Rechercher : dans
Par :

Formulaire de contact et caractères accentués

Dernière réponse le 24 fév 2009 à 13:29:52 la chicane, le 4 fév 2009 à 21:45:44 
 Signaler ce message aux modérateurs

Bonsoir !!!

Comme vous le savez... un problème réglé laisse la place à un autre !!

Alors mon petit souci est le suivant.
J'ai un formulaire de contact html + php qui me transmet les informations saisies par le visiteur, par mail.

J'ai une partie de code (dans mon script PHP) qui repère les caractères spéciaux tels que les apostrophes et fait en sorte qu'ils soient correctement transcris dans le corps du message transmis par mail.

Seulement, je ne trouve nulle part le code permettant aux caractères accentués d'être transmis comme tels, et non transformés en carrés, comme dans cet exemple : caract�res sp�ciaux

Voici mon code :

$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&amp;","&",$message);
$message = str_replace("&amp;#039;","'",$message);


que dois je rajouter pour que les accents me soient transmis dans le corps du mail ?

Ps : pour info, j'ai le même code pour l'objet du mail, et là, cela fontionne. Voici par exemple, l'objet du mail tel qu'il m'est transmis dans le mail "test d'envoi de mail avec caractères spéciaux" :

$objet = str_replace("&#039;","'",$objet);
$objet = str_replace("&#8217;","'",$objet);
$objet = str_replace("&quot;",'"',$objet);
$objet = str_replace('<br>','',$objet);
$objet = str_replace('<br />','',$objet);
$objet = str_replace("<","<",$objet);
$objet = str_replace(">",">",$objet);
$objet = str_replace("&amp;","&",$objet);
$objet = str_replace("&amp;#039;","'",$objet);


Merci de votre aide... (j'en ai bientôt fini avec ce formulaire !!!)
Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « Formulaire de contact et caractères accentués » dans :
[Webmaster] Un formulaire de contact pour votre site VoirCe formulaire permet d'avoir une page pour être contacté sur son site, sans utiliser de logiciel de messagerie. La personne qui vous contacte indique son adresse, l'objet du message et son message (évidemment). Le code est une version...
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...
LaTeX - Table de caractères VoirSymboles mathématiques Symboles fléchés Lettres grecques Note : certains caractères n'apparaissent pas sous certains navigateurs (notamment certaines versions de Internet Explorer), ils sont remplacés par un carré, la...
LaTeX - En-tête VoirCommandes de formatage Avant de saisir dans le fichier .tex le texte qui sera affiché dans le document final, il est nécessaire d'écrire un certain nombre de commandes de formatage. Les commandes de formatage définissent les caractéristiques du...

1

chris-2009, le 4 fév 2009 à 21:49:54
  • +1

Caractéres spéciaux Créateur de solutions Hébergements et Sites Internet

Répondre à chris-2009

2

la chicane, le 4 fév 2009 à 22:08:53

Merci pour ta réponse Chris...
tu essayes peut être de me dire que je dois consulter les posts traitant du sujet "caractères spéciaux"...

Je l'ai bien entendu fait avant de poster ici...
J'ai vu des choses, comme ajouter en haut de mon fichier PHP :

 "ttp-equiv="Content-Type" content="text/html; charset=iso-8859-1"


mais cela ne fonctionne pas...

J'ai aussi lu des choses sur des chaines de caractères, mais je ne connais pas la syntaxe, ni l'endroit où placer ces fonctions ou chaines... (j'ai bcp de mal avec le PHP, et ce n'est pas faute d'avoir chercher et de lire tout un tas de trucs à droite et à gauche...)

:-(

Répondre à la chicane

3

la chicane, le 5 fév 2009 à 12:36:33

Hello !!
j'ai trouvé (bon, ok, grace à l'aide d'un collègue...)

Il fallait rajouter dans mes formules magiques, ces formules là :

$message = str_replace("é","é",$message);
$message = str_replace("è","è",$message);
$message = str_replace("ù","ù",$message);
$message = str_replace("à","à",$message);
$message = str_replace("ü","ü",$message);
$message = str_replace("ö","ö",$message);
$message = str_replace("ê","ê",$message);
$message = str_replace("â","â",$message);

pour lui dire de transformer les caractères hmtl en lettres accentuées correspondantes...

Ouf !!!

Peut être cette solution pourra t-elle être utile à quelqu'un...

Je clos le sujet.

merci à vous

Répondre à la chicane

4

la chicane, le 5 fév 2009 à 16:29:39
  • +1

Pour reprendre le message ci-dessus... j'ai oublié de me mettre dans les balises codes... et comme ce site est super bien fait, il a transformé lui même le code html en lettres correctes...

ceci vous démontre au moins que ça marche !!!

revoici donc le code... dans les bonnes balises pour une bonne lisibilité

$message = str_replace("&eacute;","é",$message);
$message = str_replace("&egrave;","è",$message);
$message = str_replace("&ugrave;","ù",$message);
$message = str_replace("&agrave;","à",$message);
$message = str_replace("&uuml;","ü",$message);
$message = str_replace("&ouml;","ö",$message);
$message = str_replace("&ecirc;","ê",$message);
$message = str_replace("&acirc;","â",$message);

Répondre à la chicane

5

la chicane, le 8 fév 2009 à 21:13:33

Bonsoir tout le monde...
j'ai crié victoire un peu trop vite semble-t-il...

en fait, tout est ok lorsque je lis le message envoyé par le formulaire de contact, avec mon client messagerie (outlook).

mais lorsque je les lis depuis mon FAI, avec IE j'ai des carrés à la place des caractères accentués... et avec FFox, j'ai un petit losange noir contenant un point d'interrogation...

Quelqu'un pourait-il m'aider ?... je commence à craquer avec ce formulaire pourtant si simple d'après tout ce que je lis...

:-(

Merci à vous !!

Répondre à la chicane

6

Cécile, le 23 fév 2009 à 12:09:21

Bonjour,
j'ai exactement le même problème. Est ce que quelqu'un a trouvé la réponse?

Merci d'avance

Répondre à Cécile

7

la chicane, le 24 fév 2009 à 12:31:36

Salut Cécile,

Voici la solution que j'ai trouvé :

défini des paramêtres pour les variables que tu veux voir "clean" dans ton mail (ici, j'ai défini les paramètres pour les variables "entête", "objet" et "message" de mon mail :

$headers = "Content-Type: text/html; charset=\"iso-8859-1\"\n".'From: '.$nom.' '.$prenom.' <'.$email.'>';
$message = str_replace('\r\n','<br>',$message);
$objet = str_replace("&#039;","'",$objet);


Grâce à ces variables, j'ai pu m'affranchir des formules "str_replace" que j'avais décrites ci-dessus.
Tout fonctionne tip top, les mails que je reçois sont propres.

Bonne chance et bon courage. J'espère que ceci t'aidera car j'ai galéré des soirées entières !!!!

;-)

Répondre à la chicane

8

 Cécile, le 24 fév 2009 à 13:29:52

Merci pour de ta rapidité. Je vais essayer.

Bonne continuation

Répondre à Cécile