Passez @lex Guestbook en utf-8

Pour vos questions au sujet de la personnalisation du script, des skins... - About customizing the script.

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:.
Otomatic
Modérateur
Modérateur
Messages : 745
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Passez @lex Guestbook en utf-8

Messagepar Otomatic » Mar 16 Juil 2013, 16:56

Bonjour,

Je viens de passer tout mon site en jeu de caractère utf-8. Précédemment, il était en iso-8859-1, sauf le forum déjà en utf-8.
Ayant donc passé également @lex Guestbook en utf-8, je vais vous en faire profiter.
Déjà, utilisant un éditeur de texte très performant (UltraEdit) qui supporte macros et scripts, j'ai pu, via un script ConvertAllFilesInDirectoryToUTF8.js transcoder les 3122 fichiers (php, txt, html) dans 1064 dossiers sur quatre niveaux en moins de 44 minutes.
Même si je préconise de transcoder en utf-8 tous les fichiers du livre d'or, pour ceux qui ne peuvent pas faire ça automatiquement, il devrait suffire de transcoder uniquement le fichier de langue agb\languages\francais.php. Un éditeur de texte gratuit Notepad++ fait ça très bien en prenant soin d'utiliser l'option Encodage, Convertir en UTF-8 (sans BOM). Ne jamais utiliser Notepad.exe, le Bloc-Notes de Windows pour modifier des fichiers PHP

Une fois converti en UTF-8, dans ce même fichier agb\languages\francais.php remplacer

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "iso-8859-1";

par

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "utf-8";

puis sauvegarder le fichier modifié.

Si, maintenant, on lance @lex Guestbook, comme 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.

Modifier le fichier mon_livre_or\add_message.php pour que les envois des deux types de messages sont bien précisés en utf-8, donc, deux fois :

Code : Tout sélectionner

$entetemail .= "Content-type: text/plain; charset=utf-8\r\n";


On pourrait s'arrêter là - et vous pouvez, vous aussi, vous arrêter là-, mais ça me contrarie d'avoir une base de données @lex Guestbook en latin1 pour servir les données en utf-8. Ça fonctionne bien, même l'ajout de nouveaux messages, néanmoins, la logique informatique (et la mienne) font que le codage devrait être le même des deux côtés.

On va donc procéder, via PhpMyAdmin, à un export dans un fichier SQL, uniquement des tables avec le préfixe par défaut alex_livre_ en utilisant les options d'exportation PhpMyAdmin décrites ici Export import PhpMyAdmin en utilisant, par exemple, le nom alex_iso_2013-07-15.sql.
Par sécurité, on ne va pas travailler sur ce fichier, mais sur une copie qui sera, par exemple : alex_utf8_2013-07-15.sql
Dans ce fichier alex_utf8_2013-07-15.sql on va procéder à des remplacements de toutes les occurrences de certaines chaînes de caractères par des autres :
Remplacer toutes les occurrences de :

Code : Tout sélectionner

CHARSET=latin1

par

Code : Tout sélectionner

CHARSET=utf8


Remplacer toutes les occurrences de :

Code : Tout sélectionner

latin1_general_ci

par

Code : Tout sélectionner

utf8_general_ci


Sauvegarder le fichier modifié et procéder à l'import dudit fichier via PhpMyAdmin.

Et voilou :pausecaffé: Tout est codé utf-8.
Nota : Cette procédure a été écrite à posteriori. J'ai pu oublier quelque chose, d'autant plus qu'avant de l'appliquer, comme écrit dès le début, j'ai effectué le transcodage en utf-8 de tous les fichiers php, txt et html de mon site, donc tous les fichiers de @lexGuestbook. Si cette procédure ne fonctionne pas totalement pour vous, merci de signaler clairement ici quel est le défaut constaté
Dernière édition par Otomatic le Lun 02 Sep 2013, 11:11, édité 1 fois.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Ven 30 Août 2013, 08:47

Bonjour,

J'ai installé la dernière version en local, le soucis d'UTF-8 est toujours présent.

J'ai bien modifier les pages annoncés et même une ou deux autres pages..

Est-ce qu'il n'est pas préférable de mettre directement le script en utf8 totalement vue que la norme pour la plupart des sites ou script est l'utf-8 ?

Cordialement et merci pour ce beau travail sur ce script !

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

Re: Passez @lex Guestbook en utf-8

Messagepar Otomatic » Ven 30 Août 2013, 09:44

gibrs a écrit :... le soucis d'UTF-8 est toujours présent.

Bonjour,

Quel soucis ?
Un minimum d'explications et d'exemples - sans en mettre quinze pages - seraient les bienvenus.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Ven 30 Août 2013, 10:33

Bonjour,

Désolé pour les blablas..

Il faut re-traduite toute la page de langue les accents sont pris en charge certaines fois et pas d'autres, les messages d'allertes dans l'admin il faut laisser tel quel, les emails..

un coup il faut remplacer es caractères éàû... en html un coup il faut les laisser..

Voilou

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

Re: Passez @lex Guestbook en utf-8

Messagepar Otomatic » Ven 30 Août 2013, 14:57

Bonjour,

Ce ne sont ni des explications, ni des exemples :contrac:
Comment voulez-vous que j'arrive à trouver d'où peut provenir le soucis, avec un pareil charabia 8|

Avez-vous bien suivi scrupuleusement toutes les modifications à effectuer décrites dans le premier message ?
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Sam 31 Août 2013, 14:36

Bonjour,

Oui c'est vrai je me suis mal exprimé.

Alors j'ai installé la dernière version, avec modification des pages en UTF-8 cités ci-dessus..

+ la page add_message.php en remplaçant les lignes 194 et 217 :

Code : Tout sélectionner

charset=iso-8859-1


par

Code : Tout sélectionner

charset=utf-8


soit en objet les les accents éàç.. ne sont pris en compte et du coup dans le message de mail c'est bien repris soit c'est l'inverse quand on change iso-8859-1 par utf-8 ou inversement pour dans cette page..

+ la page laguages/francais.php en remplaçant à la ligne 12 :

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "iso-8859-1";


par

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "utf-8";


j'ai remplacé tout les accents éàô.. par par les codes html é à j'ai même tenté les codes ISO... mais tous n'est pas à changer bizarement comme pour certains messages d'allertes (message validation de message de commentaire avec problème d'accent avec ou sans code iso comme
"Merci, votre paramétrage a été enregistré" dans l'admin qu'il faut laisser tel quel..


+ la page setup.php à la ligne 22 :

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "iso-8859-1";


par

Code : Tout sélectionner

$SCRIPT_ENCODAGE = "utf-8";
Dernière édition par gibrs le Sam 31 Août 2013, 20:12, édité 1 fois.

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Sam 31 Août 2013, 20:08

Bonjour,

je vous ai donné ce cliche chez moi suite à des heures de tests et réinstallation, sachant que je n'ai pas fait la fameuse modification dans mysql ayant modifier les fichier en utf-8 avant et sans mettre non plus automatiquement tous les fichiers en utf-8..

alors maintenant je vais aller maintenant dans mysql..

Une question en ettendant est-ce que ça peut changer de mettre UTF-8 ou utf8 à la place de utf-8 ?

Salutations.

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

Re: Passez @lex Guestbook en utf-8

Messagepar Otomatic » Dim 01 Sep 2013, 09:51

gibrs a écrit :[b]... j'ai remplacé tout les accents éàô.. par par les codes html é à(/b]...

Pourquoi ?
Ce n'est absolument pas ce que j'ai écrit. Vous n'avez pas effectué ce qui est prescrit :
Otomatic a écrit :... il devrait suffire de transcoder uniquement le fichier de langue agb\languages\francais.php. Un éditeur de texte gratuit Notepad++ fait ça très bien en prenant soin d'utiliser l'option Encodage, Convertir en UTF-8 (sans BOM)...

Vous faites n'importe quoi, sans chercher à comprendre ce que vous faites et pourquoi vous le faites.
En plus, vous « explications » sont tellement nébuleuses - euphémisme :( - qu'il est impossible de suivre ce qui a été fait, défait, refait, redéfait et dans quel ordre d'autant plus que vous éditez vos messages en y modifiant ce que vous avez déjà effectué.
L'informatique ne se joue pas « au hasard », vous vous devez d'être rigoureux, rationnel, logique et méthodique. Si c'est trop vous demander, j'arrête là.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Dim 01 Sep 2013, 12:44

:grr:

Bonjour,

Si j'ai modifié c'est que ça ne marché pas chez moi :contrac:

Le fichier langue étant déjà en utf-8, et puis-que je m'en prend plein la poire..

Proposez simplement un script en conformité avec les longuages du marché soit l'utf-8 ou autre avec un changement à sa guise dans l'admin sans aller rentrer de BDD autre tripotage :pompom:

Je ne suis pas un as du code, si votre script n'est pas parfaitrement compatible en utf-8 et du coup avec d'autres scripts c'est tout de même pas de ma faute :hello:

FIN

Malabar
Admin
Admin
Messages : 4072
Inscription : Lun 07 Août 2006, 09:46
Localisation : Lorient
Contact :

Re: Passez @lex Guestbook en utf-8

Messagepar Malabar » Dim 01 Sep 2013, 13:40

Bonjour, bonjour,

Ouhla ça chauffe ici. :modo:
Pour commencer Otomatic n'est pas dans l'équipe de développement du script donc ne lui reprochez pas ce qu'il ne peut pas corriger/modifier. Il a la gentillesse de proposer ses modifications/corrections/améliorations à tous en expliquant à chaque fois comment il fait. :merci:
Si vous n'êtes pas arrivé à reproduire ses modifications, il suffisait de lui expliquer ce qui ne fonctionnait pas.
Connaissant Otomatic depuis un moment, je pense que ces explications sont claires et ses modifications ont toujours été appliquées avec succès :super: . D'autres utilisateurs ont déjà utilisé son sujet sur la modification en UTF-8 avec succès !

Pour ce qui est du passage du script en UTF-8, sachez que oui, les autres scripts sont majoritairement en UTF. Sauf que.....AlexGuestbook n'est pas un script comme un forum ou un CMS. C'est un script qu'on peut intégrer dans une page. Et pour qu'il fonctionne correctement il faut que le livre utilise le même encodage que la page qui l'inclut.
Pour le moment, la majorité des sites développés sans avoir de nombreuses connaissances HTML sont encore en ISO (la faute aux logiciels gratuits ? :taistoi: ). Il est donc naturel que le livre soit en ISO....même s'il serait temps que cela change.

Que voulez-vous, nous n'avons que quelques (dizaines de) milliers d'utilisateurs, nous n'allons pas tenter de révolutionner le développement des sites ! :/
Le mâle à barre (Maxime)

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Dim 01 Sep 2013, 13:58

Bonjour,

Merci de votre réponse et ne doute pas de sa compétence non plus, seulement il y a plus d'agressivité de sa part, ça ne me dérange pas d'être grinoter mais pas dêtre mangé..

J'ai une version en test de 5.0.2 qui a été détourné de son utilisation principale à utilisation pour suivi d'intervention, elle marche nickel RAS.

J'ai voulu utilisé la dernière version pour sa fonction première Livre d'or, simple installation sans modif manque de pot ma boutique est en utf-8 donc avec avec des soucis d'accents c'est tout !

Ce n'est pas mon métier le code je sais faire quelques trucs, that's all..

J'ai voulu bien faire, c'est bien, d'accord, désolé, mais ce n'est pas une réson de m'en mettre plein la face ! il est peut être efficace mais il parle à une parsonne et non à son PC qui bug !

Bref c'est du hos sujet total ! bref je vais faire une bidouille simple pour les emails ça sera plus rapide..

Sinon bon script et merci encore.. et vivement la version totalement utf-8 ou la possibilité de la choisir dans l'admin pour la prochaine version..

Bon WE même aux Geeks dan le monde..

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

Re: Passez @lex Guestbook en utf-8

Messagepar Otomatic » Dim 01 Sep 2013, 16:10

Bonjour,

Mon PC ne « bug » pas, et Il n'y a aucune agressivité de ma part, juste une remise à l"heure des pendules comme je l'ai déjà écrit :
« L'informatique ne se joue pas « au hasard », vous vous devez d'être rigoureux, rationnel, logique et méthodique. »
Cette procédure n'ayant pas été écrite en temps réel mais à posteriori, il se peut que j'ai oublié quelque chose.

- Pourquoi n'avez-vous pas effectué uniquement ce que j'ai prescrit ? (sans modifier la BDD)
À partir de là, on aurait pu voir ce qui posait encore problème et corriger au fur et à mesure, bien sûr, à condition d'exposer clairement ce qui clochait.
Mais, comme vous avez effectué d'autres modifications (Pas clairement expliquées) il devenait impossible d'accorder nos violons.

Remarques :
- Le script est en conformité avec les langages du marché : HTML, PHP et MySQL - Si tant est que l'on puisse parler de marché pour un script gratuit.
- iso-8859-1 et utf-8 ne sont pas des langages, mais des codages ou jeux de caractères (charset)
- Je suis loin d'être un « geek ». Je suis né avant le débarquement et me suis mis à PHP, HTML et MySQL il y a neuf ans.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Dim 01 Sep 2013, 17:56

ok

Bon WE même aux Geeks dans le monde..

Traduction : phrase simple destinée à tous !

JPhL
Messages : 13
Inscription : Jeu 21 Avr 2011, 23:18

Re: Passez @lex Guestbook en utf-8

Messagepar JPhL » Lun 30 Déc 2013, 22:51

Merci ! Ça marche sans pb ! Même si ma logique moins informatique moins poussée que celle de Otomatic m'incite à ne pas trop toucher à la bdd... J'ai peur ! :triste1:

Mais, je vais essayer de faire quand-même... ;-)

::d Bon, tout semble fonctionner normalement... Encore merci et bonne année ! :super:

gibrs
Messages : 15
Inscription : Dim 25 Août 2013, 18:50

Re: Passez @lex Guestbook en utf-8

Messagepar gibrs » Dim 05 Jan 2014, 17:49

Bonjour JPhL,

Ta réception de mail ce fait bien avec les bons caractères quand tu rentre des lettres comme éàû...

Ca marche bien pour toi partout ?


Revenir vers « Personnalisation - tuning »

Qui est en ligne ?

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