[Résolu] Problèmes caractères accentués

Pour les problèmes avec l'installation ou l'utilisation du script - About install and use problems.

Modérateurs : boulmontjj, Pierre G., Malabar, Otomatic

Règles du forum
Pensez à effectuer une recherche et à consulter la FAQ, la réponse à votre question a de grandes chances d'avoir déjà été donnée ;-).
Dans votre message, n'oubliez pas de mentionner l'URL vers votre livre d'or, cela nous permet de vous aider bien plus efficacement :super:.
ploum
Messages : 2
Inscription : Ven 23 Sep 2016, 15:11

[Résolu] Problèmes caractères accentués

Messagepar ploum » Ven 23 Sep 2016, 15:19

Bonjour,
http://2abcs.fr/livo/
Suite à la mise à jour en PHP 5.6, les caractères spéciaux des messages laissés et uniquement cela, ne s'affichent plus correctement.
A la lecture des faqs, j'ai appliqué avec Notepad++, les corrections demandées, mais aucun changement pour le corps des messages.
Une autre piste ?
Merci
Ploum
Dernière édition par ploum le Ven 23 Sep 2016, 18:16, édité 2 fois.

Otomatic
Modérateur
Modérateur
Messages : 751
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: Problèmes caractères accentués

Messagepar Otomatic » Ven 23 Sep 2016, 16:34

Bonjour,

Vous avez appliqué les modifications, MAIS.... les messages dans la base de données sont encodés "iso-8859-1 ou latin1" et sont transmis par MySQL comme tels, on va se retrouver avec tous les caractères accentués sous forme de � qui est la représentation d'un caractère ne faisant pas partie du jeu de caractères utf-8.
Un moyen simple est de dire à MySQL de transmettre les caractères transcodés en utf-8, donc, juste après la connexion à la base de données et avant toute autre requête, on va dire à MySQL d'envoyer de l'utf-8 par la commande SET NAMES 'utf8';
Dans le fichier : agb\db\MySQL.php, à la fin de la class alex_livre_sql, remplacer :

Code : Tout sélectionner

   function sql_error($query_id = 0)
   {
      $result["message"] = @mysql_error($this->db_connect_id);
      $result["code"] = @mysql_errno($this->db_connect_id);

      return $result;
   }

par

Code : Tout sélectionner

   function sql_error($query_id = 0)
   {
      $result["message"] = @mysql_error($this->db_connect_id);
      $result["code"] = @mysql_errno($this->db_connect_id);

      return $result;
   }
   
   //[modif oto] ajout pour SET NAMES utf8
   function set_names($names)   {
      return $this->sql_query('SET NAMES \''.$names.'\'');
   }

et, au début du même fichier, remplacer :

Code : Tout sélectionner

      if($this->db_connect_id)
      {
         if($database != "")
         {
            $this->dbname = $database;
            $dbselect = @mysql_select_db($this->dbname);
            if(!$dbselect)
            {
               @mysql_close($this->db_connect_id);
               $this->db_connect_id = $dbselect;
            }
         }
         return $this->db_connect_id;

par

Code : Tout sélectionner

      if($this->db_connect_id)
      {
         if($database != "")
         {
            $this->dbname = $database;
            $dbselect = @mysql_select_db($this->dbname);
            if(!$dbselect)
            {
               @mysql_close($this->db_connect_id);
               $this->db_connect_id = $dbselect;
            }
         }
         //[modif oto] ajout pour utf8
         $this->set_names('utf8');
         
         return $this->db_connect_id;

Sauvegarder le fichier.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

ploum
Messages : 2
Inscription : Ven 23 Sep 2016, 15:11

Re: Problèmes caractères accentués

Messagepar ploum » Ven 23 Sep 2016, 17:51

Bonsoir,
Modifications effectuées. Tout Ok. Un grand merci. Ploum


Revenir vers « Installation & utilisation »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 12 invités