PHP en utf-8

cddede Messages postés 3255 Date d'inscription   Statut Contributeur Dernière intervention   -  
cddede Messages postés 3255 Date d'inscription   Statut Contributeur Dernière intervention   -
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



--
Cddede Membre de CCM

2 réponses

  1. LearnPHPaz Messages postés 10 Statut Membre
     
    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
  2. cddede Messages postés 3255 Date d'inscription   Statut Contributeur Dernière intervention   1 070
     
    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
    1. LearnPHPaz Messages postés 10 Statut Membre
       
      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
    2. cddede Messages postés 3255 Date d'inscription   Statut Contributeur Dernière intervention   1 070
       
      En dessous d'ou ?
       $h = ... :
      0