Problème encodage variables {User} page HTML

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Problème encodage variables {User} page HTML

Message par Xoumi le Mar 15 Juil 2014 - 1:24

Bonsoir,

Récemment, nous avons mis en place un formulaire permettant d'automatiser certaines actions au sein de notre forum. Cependant, lors du développement des formulaires, nous nous sommes pas aperçus d'un problème qui vient de nous être rapporté. En effet, le script utilisé pour récupérer les variables de FA donné par Ea :

Code:
<script type="text/javascript" src="http://tinyurl.com/var-fa"></script>

provoque un problème d'encodage avec certains caractères accentués :


Auriez-vous une astuce à me proposer pour corriger "simplement" ce désagrément ?

En vous remerciant par avance,
Xoumi.

Xoumi
*****

Messages : 604
Inscrit(e) le : 23/09/2010

http://www.harrypotter2005.net
Xoumi a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème encodage variables {User} page HTML

Message par Chacha le Mar 15 Juil 2014 - 10:16

Bonjour Xoumi,

J'ai envoyé un MP à Ea pour qu'il regarde à votre demande. Wink


Cordialement.


Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe

Chacha
Modéractif
Modéractif

Masculin
Messages : 49754
Inscrit(e) le : 21/08/2010

http://forum.forumactif.com/
Chacha a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème encodage variables {User} page HTML

Message par Xoumi le Mar 15 Juil 2014 - 10:39

Bonjour Chacha,

Merci beaucoup !

Xoumi.

Xoumi
*****

Messages : 604
Inscrit(e) le : 23/09/2010

http://www.harrypotter2005.net
Xoumi a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème encodage variables {User} page HTML

Message par gendarme le Mar 15 Juil 2014 - 15:00

Petite question , as quoi vous sert ce script ?
Si c'est pour récupérer le pseudo de l'utilisateur , vous pouvez utiliser ceci pour le nom du personnage .
Code:
en js
form.nom.value = _userdata["username"];
Code:
(as mettre dans le formulaire )
<input name="nom" id="nom"value="" type="hidden">
<!-- Le champ hidden réduira considérablement le risque de modification -->

gendarme
****

Messages : 235
Inscrit(e) le : 16/04/2012

http://simu-secours.forumactif.org/
gendarme a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème encodage variables {User} page HTML

Message par Ea le Mer 16 Juil 2014 - 1:14

Bonjour,


Est-ce que l'encodage de base ( sans template modifié ) est préservé ?

Si pas : c'est normal, le forum l'affiche pour un encodage donné par exemple L\x94vi donc si vous changez en utf-8 qui devrait être L\x93\x34vi (j'invente) ça affichera un caractère erroné.

Maintenant j'hypothétise peut-être une bétise vu que si vous aviez changé ça il y aurait possiblement tout une série d'autre problème ( envoie de message, caractère dans le css, peut-être les feuilles javascripts aussi, ... ).

Sinon comme le dit gendarme si les variables userdata suffisent c'est le truc à utiliser.

Il y a ceci dedans :

Code:
                _userdata["session_logged_in"] = 1;
                _userdata["username"] = "Ea";
                _userdata["user_id"] = 61324;
                _userdata["user_level"] = 2;
                _userdata["user_lang"] = "fr";
                _userdata["activate_toolbar"] = 1;
                _userdata["fix_toolbar"] = 1;
                _userdata["notifications"] = 1;
                _userdata["avatar"] = "<img src="http://i.imgur.com/tMVnwBj.png" alt="" />";
                _userdata["user_posts"] = 22475;
                _userdata["user_nb_privmsg"] = 4959;
                _userdata["point_reputation"] = 3372;
qui devrait être dispo sur tout les forums (youhou) sauf si ils font du bisbrouf dans leurs template ( en retirant le mauvais truc dans overall_header ).

Cordialement.

Ea
Aidactif
Aidactif

Messages : 23419
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème encodage variables {User} page HTML

Message par Xoumi le Mer 16 Juil 2014 - 5:40

Hello,

Le Charset d'origine du forum est :

Code:
<meta http-equiv="content-type" content="text/html; charset=windows-1252" />

Et j'utilise ce dernier pour toutes les applications sur le forum car, comme tu le sais, nous ne pouvons pas convertir notre forum en UTF8 même si j'ai déjà évoqué ce problème à ForumActif, il y a quelques années quand j'étais dans le Staff. Nous sommes condamnés à avoir un Charset obsolète.

Bref, la solution avec userdata, j'avoue que j'y avais pas pensé et ... que je ne vois pas comment faire. Comment l'intégrer dans mon script donné ci-dessous en hide :



En vous remerciant par avance,
Xoumi.


Xoumi
*****

Messages : 604
Inscrit(e) le : 23/09/2010

http://www.harrypotter2005.net
Xoumi a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème encodage variables {User} page HTML

Message par demeter1 le Mer 16 Juil 2014 - 6:45

Soucis identique car même encodage avec l'emploi du script dans certains formulaires.

demeter1
+ Hyperactif +

Masculin
Messages : 8104
Inscrit(e) le : 23/01/2009

http://altitudetropicale.forums-actifs.com/index.forum
demeter1 a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème encodage variables {User} page HTML

Message par Ea le Jeu 17 Juil 2014 - 9:07

On pourrait mettre _userdata['username'] à la place de document.getElementById('pseudo').value

Ou si on désire modifier le champ pour afficher le pseudo, mettre :

Code:
jQuery(function(){
  document.getElementById('pseudo').value = _userdata['username'] ;
});

Cordialement.

Ea
Aidactif
Aidactif

Messages : 23419
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème encodage variables {User} page HTML

Message par Xoumi le Jeu 17 Juil 2014 - 12:01

Hello,

Alors :

Code:
_userdata['username'] à la place de document.getElementById('pseudo').value

Cela fonctionne parfaitement, le pseudo récupéré par le formulaire est publié sans problème d'encodage.

Par contre :

Code:
  jQuery(function(){
          document.getElementById('pseudo').value = _userdata['username'] ;
        });

Cela permet de corriger l'affichage du pseudo dans l'input visible. Cependant, il reste des problèmes d'encodage dans le pseudo affiché par :
Code:
<span class="USERNAME"></span>

et

Code:
<input value="Demande d'ouverture de compte de " name="subject" class="USERNAME" type="hidden" />



Xoumi
*****

Messages : 604
Inscrit(e) le : 23/09/2010

http://www.harrypotter2005.net
Xoumi a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Problème encodage variables {User} page HTML

Message par Ea le Jeu 17 Juil 2014 - 13:10

Peut-être essayer :

<span class="_ud">{{username}}</span>
<input value="Demande d'ouverture de compte de {{username}}" name="subject" class="_ud" type="hidden" />

Et mettre un script comme ceci qui remplacera les {{variable_useradata}} des balises ayant la classe _ud :

Code:
$(function(){
    var r = /\{\{\s*[a-zA-Z_]+\s*\}\}/g, f = function(s){
        var v, m = s.match(r);
        if(!m.length) return s;

        for(var i= 0; i<m.length; i++) {
            v= m[i].substr(2, m[i].length-4).trim();
            if(v in _userdata)
                m[i]= _userdata[v];
        }

        var p = s.split(r);

        s = p[0];
        for(var i= 1; i < p.length; i++)
            s += m[i-1] + p[i];
        return s;
    };
    $('._ud').each(function(){
        var v;
        if((v = $(this).val()) && v.indexOf('}}')!=-1)
            $(this).val(f(v));
        if((v = $(this).html()) && v.indexOf('}}')!=-1)
            $(this).html(f(v));
    });
});

Ea
Aidactif
Aidactif

Messages : 23419
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème encodage variables {User} page HTML

Message par Xoumi le Jeu 17 Juil 2014 - 13:47

Et bien tout fonctionne parfaitement !

Je te remercie beaucoup pour l'aide que tu as apporté à notre forum. Heureusement que tu es là pour adapter nos scripts à notre vieux Charset tout pourri !

Avant de passer ce sujet en résolu, je souhaiterai avoir ton avis sur un point. En tant qu'expert en la matière, est-ce que tu penses que techniquement, un forum ayant un vieux Charset peut adopter un nouveau encodage pour être viable avec l'évolution des NTIC et notamment des normes du Web ?

En te remerciant par avance,
Xoumi.

Xoumi
*****

Messages : 604
Inscrit(e) le : 23/09/2010

http://www.harrypotter2005.net
Xoumi a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème encodage variables {User} page HTML

Message par Ea le Jeu 17 Juil 2014 - 14:16

Je ne suis pas un expert en la matière, mais pour qu'un forum change d'encodage il serait nécessaire de convertir le windows-1252 en utf-8 ( donc chaque champ texte de la base de donnée, pour ce forum ça prendrait donc au moins 700 000 conversions en comptant juste les pseudo et les messages ).

Qui plus est si il est possible d'utiliser des caractères n'existant pas en windows-1252, c'est grâce aux séquences html du style &#1414; mais ça je ne sais pas à quel point ça serait compliqué de les convertir en utf-8 pure ( et si il y en a besoin ).

Il y a peut-être d'autres problèmes que je ne connais pas, je sais que forumactif travaillait à convertir tout les forums il y a quelques années mais vu que ce n'est pas encore fait je vois peu de chance que ça arrive bientôt.

Sinon pour le problème de ce sujet, j'ai testé sur un forum de test avec l'ancien encodage et un pseudo 한正日 s'affiche bien : http://i.imgur.com/RrryM5W.png ( http://kishh.forum.st/h41-areazeaa ).

Cordialement.

Ea
Aidactif
Aidactif

Messages : 23419
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Problème encodage variables {User} page HTML

Message par Xoumi le Jeu 17 Juil 2014 - 14:45

Merci beaucoup pour tes précisions sur le problème soulevé. Je pense que je vais rédiger un courrier à ForumActif pour connaître sa position à ce sujet. J'avoue que c'est quand même inquiétant sur le devenir des vieux forums.

En regardant moi-même la page en tant qu'invité, le problème d'encodage demeure : http://i39.servimg.com/u/f39/11/01/36/00/17-07-11.png .

Je passe donc ce sujet en résolu. Je te remercie, encore une fois, pour l'aide apportée.

Bien cordialement,
Xoumi.


Xoumi
*****

Messages : 604
Inscrit(e) le : 23/09/2010

http://www.harrypotter2005.net
Xoumi a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum