(mysqli): SET NAMES 'utf8' &nbsp

(mysqli): SET NAMES 'utf8' &nbsp

par Donatien Vrielynck,
Nombre de réponses : 1

Bonjour à tous,

J'ai installé un serveur de test Moodle version 2.1.2, l'installation c'est bien passée, l'ensemble des composants est installé et dans "Environnement - Contrôles serveur" tout est  "Statut : Ok".

J'utilise une base de donnée mysl version 5.1.49.3 et php version 5.3.3.7.3.
Le tout est installé sur un serveur Debian GNU:Linux 6.0.

L'utilisateur Admin est créé et il peut se connecter et manager le serveur.

Cependant, j'ai crée un utilisateur de test qui est professeur dans un cour et ce dernier ne peut pas se connecter au serveur moodle.

Voici le message d'erreur que j'obtient lors de la connection :

Erreur d'analyse XML : entité non définie
Emplacement : http://qcm.telecom-lille1.eu/login/index.php
Numéro de ligne 2, Colonne 28 tristemysqli): SET NAMES 'utf8'  
---------------------------^

J'utilise une base de donnée externe Mysql pour la gestion des comptes. Cet utilisateur y est bien inscrit lors de la création du compte et tout les champs requis sont bien renseignés.

Avez-vous une piste et/ou une solution à ce problème?
Je vais bientôt devoir crééer un serveur en production avec cet environnement !!!

D'avance merci pour votre aide.

Bien à Vous,

Moyenne des évaluations  -
En réponse à Donatien Vrielynck

Re: (mysqli): SET NAMES 'utf8' &nbsp

par Jean FRUITET,

Si l'admin arrive a se loger c'est que le serveur n'est pas en cause mais plutôt les données transférées depuis la BD externe.

Dans le message d'erreur

": (" est reconvertit comme emoticon triste donc il faut lire

Erreur d'analyse XML : entité non définie
Emplacement : http://qcm.telecom-lille1.eu/login/index.php
Numéro de ligne 2, Colonne 28 : (mysqli) : SET NAMES 'utf8'  
------------------------------------^

Ce qui me paraît bizarre c'est que votre serveur Moodle n'apparaît pas donc vous avez placé tout les scripts à la racine de votre serveur... et le fichier ./login/index.php est bien celui de Moodle 2.1.2

A cette ligne il y a un appel au script ../config.php situé à la racine du serveur.

Etes-vous certain que :

1) Votre serveur mysqli pour Moodle est en UTF-8 ?
2) Votre base de données moodle est en UTF-8 ?
3) Votre base de données externe des comptes MySql est aussi en UTF-8 et envoie des données compatibles UTF-8 à Moodle ?

Apparemment l'authentification se fait en chargeant un code XML, probablement de l'Ajax ou quelque chose d'approchant, ou un annuaire LDAP... que sais-je ?

Avez-vous passé le serveur en mode debug intégral pour avoir l'ensemble des messages d'erreur et décoché XML strict ?

Parfois cela rend le serveur plus ... compatissant sourire