Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problèmes d'accents

    3 février 2011 à 17:55:25

    Bonsoir,

    Je fais une petite chatbox pour mon site. Voulant le rafraichissement automatique sans rafraichir la page entière entière, je suis tombé sur ce code :

    var obj = null; 
     var FILENAME = "chatbox.php"; 
     function Chargeurl (url) { 
     if(window.XMLHttpRequest) 
     obj = new XMLHttpRequest(); 
     else if(window.ActiveXObject) obj = new ActiveXObject("Msxml2.XMLHTTP"); 
     else obj = null; 
     if (obj== null) return; 
     obj.open("GET", url+'/?'+new Date(), true);
     obj.onreadystatechange = function () { 
           if(obj.readyState == 4 ) { 
     var req = obj.responseText; 
        if(document.getElementById) 
        { 
           document.getElementById("chat_messages").innerHTML = req; 
        } 
        else if(document.all) 
        { 
           document.all["chat_messages"].innerHTML = req; 
        } 
     }}; 
     obj.send(null); 
     } 
     window.setInterval("Chargeurl(FILENAME)",1000);
    


    Qui fonctionne très bien. Le problème étant qu'il m'affiche des � à la place des accents après le rafraichissement.
    Une idée du problème ?

    Cordialement,
    Ksama
    • Partager sur Facebook
    • Partager sur Twitter
      3 février 2011 à 19:40:10

      Y'a un header PHP pour spécifier l'encodage, je crois.

      Utilise-le sur ta page ajax en accord avec l'encodage de ta page mère.
      • Partager sur Facebook
      • Partager sur Twitter
        3 février 2011 à 20:14:34

        Bonsoir,

        Merci de ta réponse.
        Si tu parle de cet encodage :
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        


        Il est présent sur ma page qui comporte mon chat. En gros, j'ai ma page index.php, qui contient directement le script dans son <head></head> et un include
        <?php include("chatbox.php"); ?>
        
        sur celle-ci pour afficher ma page chatbox.php qui contient le code du chat.

        Cordialement,
        Ksama
        • Partager sur Facebook
        • Partager sur Twitter
          3 février 2011 à 20:51:51

          Je pense que tu pourrais/devrais mettre un header PHP spécifiant l'encodage en haut du fichier chatbox.php
          • Partager sur Facebook
          • Partager sur Twitter
            3 février 2011 à 22:27:22

            Aucuns succès pour le header, voici le code du chat :

            <?php
            // Connexion à la base de données
            try
            {
                $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
                $bdd = new PDO('mysql:host=localhost;dbname=escautnd_bdd', 'root', '', $pdo_options);
                
                // Récupération des 10 derniers messages
                $reponse = $bdd->query('SELECT nom, message, date FROM chatbox ORDER BY ID DESC LIMIT 0, 10');
                
                // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
                while ($donnees = $reponse->fetch())
                {
                    echo '<p><strong><font color="#337599">' . htmlspecialchars($donnees['nom']) . '</font color></strong> : ' . htmlspecialchars($donnees['message']) . ' -  <font size="1pt"><font color="#84b913">' . htmlspecialchars($donnees['date']) . '</font color></font size></p>';
                }
                
                $reponse->closeCursor();
            }
            catch(Exception $e)
            {
                die('Erreur : '.$e->getMessage());
            }
            
            header('Location: index.php');
            
            ?>
            


            Cordialement,
            Ksama
            • Partager sur Facebook
            • Partager sur Twitter
              3 février 2011 à 22:40:27

              Euh... tu l'as mis où le header PHP spécifiant l'encodage en haut de ton fichier ? o_O
              • Partager sur Facebook
              • Partager sur Twitter
                3 février 2011 à 23:06:06

                Autant pour moi ...

                <?php
                // Connexion à la base de données
                try
                {
                    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
                    $bdd = new PDO('mysql:host=localhost;dbname=escautnd_bdd', 'escautnd_admin', 'valentin_1995', $pdo_options);
                    
                    // Récupération des 10 derniers messages
                    $reponse = $bdd->query('SELECT nom, message, date FROM chatbox ORDER BY ID DESC LIMIT 0, 10');
                    
                    // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
                    while ($donnees = $reponse->fetch())
                    {
                        echo '<p><strong><font color="#337599">' . htmlspecialchars($donnees['nom']) . '</font color></strong> : ' . htmlspecialchars($donnees['message']) . ' -  <font size="1pt"><font color="#84b913">' . htmlspecialchars($donnees['date']) . '</font color></font size></p>';
                    }
                    
                    $reponse->closeCursor();
                }
                catch(Exception $e)
                {
                    die('Erreur : '.$e->getMessage());
                }
                
                header('Content-type: text/html; charset=iso-8859-1'); 
                
                ?>
                


                Cordialement,
                Ksama
                • Partager sur Facebook
                • Partager sur Twitter
                  3 février 2011 à 23:34:41

                  Citation : Golmote

                  le header PHP spécifiant l'encodage en haut de ton fichier ? o_O

                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 février 2011 à 16:48:30

                    Bonjour,

                    Je ne vois pas, pour le coup, de quoi tu parles exactement.
                    Peut-être pourrai-tu me donner une exemple ?

                    Cordialement,
                    Ksama
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 février 2011 à 16:59:29

                      j'ai le meme probleme et j ai essayé avec le header sa marche pas non plus :/
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        4 février 2011 à 18:45:52

                        Il s'agit de ce code à faire figurer en tête du fichier PHP
                        header("Content-Type: text/html; charset=iso-8859-1");
                        

                        Mais il convient aussi de veiller à ce que les pages soit effectivement enregistrées avec le jeu de caractère correspondant.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 février 2011 à 19:02:43

                          il y est et sa ne marche quand meme pas :/
                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 février 2011 à 12:13:35

                            Aucunes idées ?
                            Je tiens à préciser qu'avant l'ajout du script, les accents s'affichaient normalement.

                            Cordialement,
                            Ksama
                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 février 2011 à 18:45:53

                              j'ai le même problème que toi pour les accents dans mon mini-chat...
                              il parait que htmlentities est peut-être une solution mais je ne sais pas l'utiliser...
                              si tu as des info merci de partager je ferai de même ;)

                              sinon j'ai lu ça, si toi ça te parle...
                              http://www.phpcs.com/forum/sujet-PROBL [...] X_976077.aspx

                              Rectification : mon problème d'accent n'apparait que sous IE !?!? tous les autres navigateurs sont ok !
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Problèmes d'accents

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown