[Résolu] encodage de caractère avec synchro ldap

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
augras
Gsup LEVEL 1
Messages : 12
Enregistré le : mer. 18 janv. 2017 14:46

Bonjour,
Je teste depuis hier gestsup et il conviendrait bien pour mon usage : bravo et merci pour cette application.
je n'ai pas trouver de sujet en rapport avec mon soucis.
Lors de la synchro ldap les noms et prénoms sont rapatriés avec un problème d'encodage de caractère (pas de soucis pour les mails ni les identifiants mais c'est uniquement je pense parce que il n'y a rien qui pose problème dans ces champs).
J'utilise par ailleurs la synchro ldap sans problème.
Où puis-je agir pour corriger ce problème ?
Merci,
Philippe

EDIT : je suis sur la dernière version stable sans patch.
Serveur: GestSup: 3.1.15 | OS:Debian 3.2.60-1 | Apache 2.2.22 | Mysql 5.5.38-0 | PHP 5.4.45-0
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez vous nous donner le numéro de version de l'application ?

S'agit t il d'un serveur AD ou OpenLDAP ?

Car de notre coté nous n'observons pas d'anomalie:
Screenshot - 18_01_2017 , 17_55_14.png
Screenshot - 18_01_2017 , 17_55_14.png (3.33 Kio) Vu 7186 fois
Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
augras
Gsup LEVEL 1
Messages : 12
Enregistré le : mer. 18 janv. 2017 14:46

Bonjour,
Dernière version stable sans patch, 3.1.7, serveur AD mais via samba4.
Ce qui est étonnant c'est que je n'ai pas ce problème avec l'appli de gestion des congés.
Bonne journée,
Philippe
Serveur: GestSup: 3.1.15 | OS:Debian 3.2.60-1 | Apache 2.2.22 | Mysql 5.5.38-0 | PHP 5.4.45-0
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez vous faire un test en modifiant le fichier ./core/ldap.php:

remplacer:

Code : Tout sélectionner

$givenname=utf8_encode($data[$i]['givenname'][0]);
$sn=utf8_encode($data[$i]['sn'][0]);
par

Code : Tout sélectionner

$givenname=$data[$i]['givenname'][0];
$sn=$data[$i]['sn'][0];
re-faites un synchro, et dites nous si les nom prenom ont toujours des problèmes ?

Merci
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
augras
Gsup LEVEL 1
Messages : 12
Enregistré le : mer. 18 janv. 2017 14:46

Merci, ça fonctionne maintenant sans soucis.
Avec l'api j'ai également un problème d'encodage : je supprime également charset=utf8 ?
Philippe
Serveur: GestSup: 3.1.15 | OS:Debian 3.2.60-1 | Apache 2.2.22 | Mysql 5.5.38-0 | PHP 5.4.45-0
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

sur l'api vous pouvez tester remplacer la ligne:

Code : Tout sélectionner

$charset='utf8'; //database charset default utf8
par

Code : Tout sélectionner

$charset='';
cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
augras
Gsup LEVEL 1
Messages : 12
Enregistré le : mer. 18 janv. 2017 14:46

Bonjour,
Merci pour la réponse.
Mais ça ne fonctionne pas, message d'erreur : Error : SQLSTATE[HY000] [2019] Can't initialize character set (path: /usr/share/mysql/charsets/)
Par contre ça fonctionne si j'encadre le code par :

Code : Tout sélectionner

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
code de l'api
</body>
</html>
Philippe
Serveur: GestSup: 3.1.15 | OS:Debian 3.2.60-1 | Apache 2.2.22 | Mysql 5.5.38-0 | PHP 5.4.45-0
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

Effectivement l'API est destiné à être appelée dans une autre page web qui doit contenir des balises HTML correctement formé avec un encodage en UTF-8.


cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
augras
Gsup LEVEL 1
Messages : 12
Enregistré le : mer. 18 janv. 2017 14:46

Parfait.
Je modifie donc car j'appelle d'une autre page avec simplement la ligne de code pour appeler : je mets mon code au bon endroit.
Merci,
Philippe
Serveur: GestSup: 3.1.15 | OS:Debian 3.2.60-1 | Apache 2.2.22 | Mysql 5.5.38-0 | PHP 5.4.45-0
Avatar du membre
Flox
Administrateur du site
Messages : 9436
Enregistré le : jeu. 21 juin 2012 19:00

J'ajoute votre code en commentaire dans l'API si d'autres personne sont dans le même cas que vous.

Cdt
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
Répondre