PHP en utf-8

Fermé
cddede Messages postés 2889 Date d'inscription mardi 21 mai 2013 Statut Contributeur Dernière intervention 17 février 2018 - 2 mai 2015 à 12:58
cddede Messages postés 2889 Date d'inscription mardi 21 mai 2013 Statut Contributeur Dernière intervention 17 février 2018 - 2 mai 2015 à 13:44
Bonjour,

Bonjour,

J'ai crée mon formulaire en html et la réception de ce formulaire via un .php

Cependant les écritures a caractère spéciaux (ex:é,à,ç,...) recu du formulaire que ce soit les rubriques ou les textes sont codé et on une forme bizarre ce qui empeche la lecture.

Comment convertir ceci automatiquement ?

Cdlt


A voir également:

2 réponses

LearnPHPaz Messages postés 9 Date d'inscription dimanche 1 février 2015 Statut Membre Dernière intervention 2 mai 2015
2 mai 2015 à 13:05
Bonjour,

Dans votre head, placez ceci (cela va automatiquement faire que les accents seront lisibles) :

<meta charset="UTF-8">

Ensuite, si vous voulez insérer les informations en base de données, et que celles-ci contiennent des accents, rajoutez ceci lors de la connexion à la bdd :

$db->exec("SET CHARACTER SET utf8");

Cdlt
0
cddede Messages postés 2889 Date d'inscription mardi 21 mai 2013 Statut Contributeur Dernière intervention 17 février 2018 1 036
2 mai 2015 à 13:19
Voila le php :

<?php

$TO = "monmail@...fr";

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://maredirectiondemonchoix.com");

?>



Si j'ajoute ceci : $db->exec("SET CHARACTER SET utf8");

Mon formmlaire ne l'envoi plus.

J'ai bien ceci dans mon HTML : <meta charset="UTF-8">

Cdlt

0
LearnPHPaz Messages postés 9 Date d'inscription dimanche 1 février 2015 Statut Membre Dernière intervention 2 mai 2015
2 mai 2015 à 13:27
Alors votre problème c'est un problème d'accent lors de l'envoi d'un mail ? Cela change tout ! Veuillez rajouter ceci en dessous de $h = ... :

$h.= 'Content-Type: text/plain; charset=utf-8'."\r\n";

Et ensuite, lors de l'éxecution de la fonction mail, il faut tout encoder. Remplacez votre ancien code mail()... par ceci :

mail($TO, '=?utf-8?B?'.base64_encode($subject).'?=', '=?utf-8?B?'.base64_encode($message).'?=', $h);
0
cddede Messages postés 2889 Date d'inscription mardi 21 mai 2013 Statut Contributeur Dernière intervention 17 février 2018 1 036
Modifié par cddede le 2/05/2015 à 13:45
En dessous d'ou ?
 $h = ... :
0