PHP en utf-8
cddede
Messages postés
3253
Statut
Contributeur
-
cddede Messages postés 3253 Statut Contributeur -
cddede Messages postés 3253 Statut Contributeur -
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
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:
- PHP en utf-8
- Clé windows 8 - Guide
- Mixcraft 8 - Télécharger - Création musicale
- Internet explorer 8 - Télécharger - Navigateurs
- Easy php - Télécharger - Divers Web & Internet
- Windows 8 pro - Télécharger - Systèmes d'exploitation
2 réponses
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
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
Voila le php :
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
<?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
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);
$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);