Formulaire de contact et caractères accentués [Résolu/Fermé]

Signaler
Messages postés
156
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
22 mai 2016
-
 Allen -
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 !!!)

11 réponses

Messages postés
156
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
22 mai 2016
37
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);
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
156
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
22 mai 2016
37
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 !!!!

;-)
Merci pour de ta rapidité. Je vais essayer.

Bonne continuation
Messages postés
256
Date d'inscription
jeudi 8 janvier 2009
Statut
Membre
Dernière intervention
6 avril 2009
7
caractéres spéciaux
Messages postés
156
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
22 mai 2016
37
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...)

:-(
Messages postés
156
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
22 mai 2016
37
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
Messages postés
156
Date d'inscription
jeudi 25 août 2005
Statut
Membre
Dernière intervention
22 mai 2016
37
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 !!
Bonjour,
j'ai exactement le même problème. Est ce que quelqu'un a trouvé la réponse?

Merci d'avance
2 ans après ... Avez vous trouvé une solution??
On ne sais jamais :-)
Messages postés
48
Date d'inscription
mercredi 17 mars 2010
Statut
Membre
Dernière intervention
14 août 2015
6
Bonjour,

Comment faire pour que ce code fonctionne pour s'afficher sur ma page:

https://www.facebook.com/login.php?skip_api_login=1&api_key=155933657817598&signed_next=1&next=https%3A%2F%2Fwww.facebook.com%2Fdialog%2Fstream.publish%3Fapp_id%3D155933657817598%26redirect_uri&cancel_url=https%3A%2F%2Fwww.facebook.com%2Fdialog%2Freturn%2Fclose%3Ferror_code%3D4201%26error_message%3DUser%2Bcanceled%2Bthe%2BDialog%2Bflow%23_%3D_&display=popup&locale=fr_FR
https://www.facebook.com/&action_links=&attachment={%27caption%27:%27%3Cfb:chat-invi
te+msg%3D%22Viens decouvrir une page vraiment geniale: http://www.facebook.com/aumoins1demesamisestAlcoolique%22+condensed%3D%22false%22+excl
ude_ids%3D%221,2,3%22http://t.co/q3EzkPR%22+always_post_to_friends%3D%22false%22%3E
%3C/fb:chat-invite%3E%27,%27properties%27:{%27Page%27:{%27text%27:%27FBML%20Educatio
n%27,%27href%27:%27https://www.facebook.com/aumoins1demesamisestalcoolique%27}}}&traget_id=107278022
683159

Ma page est www.facebook.com/aumoins1demesamisestalcoolique & l'on me dit qu'il faut utiliser le deuxième maillont de mon deuxième lien vers ma page. Alors qu'est ce que cela donne ???

Merci beaucoup ! :)
Messages postés
1
Date d'inscription
jeudi 8 octobre 2015
Statut
Membre
Dernière intervention
8 octobre 2015

Il faut remplacer dans le header

charset=iso-8859-1\r\n"

par

charset=\"UTF-8\"\r\n"
Merci ça marche