Authentification sur base données externe MySQL

Authentification sur base données externe MySQL

par Andrée-Anne Dostie,
Nombre de réponses : 8
Bonjour,

Une nouvelle année académique commençant, j'ai effacé tous les comptes étudiants manuellement avec des actions par lot.
J'ai effacé la table MySQL qui servait d'authentification externe.

J'ai recréé ma table et importer les nouvelles données pour les nouveaux comptes.

Je réactive l'authentification par base de données externes et je teste.

Je tape l'identifiant et le mot de passe et je tombe sur la page de profil me demandant de bien vouloir fournir des informations supplémentaires (aucun des champs liés vers ma table MySQL ne contient les données...). Soit, je remplis le tout et clique sur 'enregistrer'. Et alors je me retrouves avec le message suivant :

Failed to update user data on external auth: db. See the server logs for more details.

J'y comprends rien, cette méthode avait très bien fonctionné l'année dernière (mais alors Moodle était tout vierge, c'était la première année d'utilisation).

Première question : où sont ces log ?
Deuxième question : où peut se situer le problème ?

Car là un étudiant sais se loguer, mais il n'a aucune information dans son profil. En dehors du compte utilisateur et du mot de passe, rien n'est recopié de la base de données externe vers Moodle...

Et ces comptes seront distribués à partir de demain :/

Merci pour votre aide
Moyenne des évaluations  -
En réponse à Andrée-Anne Dostie

Re: Authentification sur base données externe MySQL

par Andrée-Anne Dostie,
J'ai oubliée de spécifier, je suis en Moodle 1.9.3+
En réponse à Andrée-Anne Dostie

Re: Authentification sur base données externe MySQL

par Andrée-Anne Dostie,
Bonjour,

J'ai cherché toute la journée d'hier et je ne trouves toujours pas mon problème.

J'ai activé le mode déboguage et les log php, mais je ne vois rien du tout dans les logs...

J'ai recréé une nouvelle BDD MySQL, une nouvelle Table, réimporter les données (.csv) dans ma table MySQL, reconfiguré les paramètres dans Moodle...

et toujours pareils...

sais plus quoi faire triste

Sinon, est-il possible d'importer des comptes en interne grâce à un fichier plat mais de ne pas permettre le changement de mot de passe...
Car, pour des raisons techniques liés à d'autres utilisation de cet identifiant, il ne faut pas que le mot de passe puisse être modifié...
En réponse à Andrée-Anne Dostie

Re: Authentification sur base données externe MySQL

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Oui, il est tout à fait possible d'utiliser un fichier plat, afin de créer les comptes sourire

Je te laisse chercher dans la documentation, l'aide en ligne de Moodle, et les discussions existantes à ce propos sur ce forum clin d’œil
En réponse à Andrée-Anne Dostie

Re: Authentification sur base données externe MySQL

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour,

il semblerait que Moodle soit paramétré pour mettre à jour les données des utilisateurs dans la base de données externe, et que ce soit cette opération qui ne fonctionne pas...
Est-ce bien le comportement souhaité ?
En réponse à Séverin Terrier

Re: Authentification sur base données externe MySQL

par Andrée-Anne Dostie,
Bonjour,

Non ce n'est pas le comportement souhaité (bien que j'ai donnée les droits à Moodle de le faire et que j'ai toujours l'erreur).

Voici mon paramétrage :

Il me semble pas demandé de toucher à la BDD externe.
Je veux juste de recopier en interne ce qui se trouve dans la BDD externe.
Ca à marché sans problème l'année dernière, mais alors les BDD de Moodles étaients vierge. Là j'ai effacé manuellement (action par lot) les anciens comptes, puis reconfigurer les paramètres comme ci-dessous... et ça ne veut plus marcher :/

Serveur localhost
Base de données Mysql
Utiliser le mode Sybase pour les apostrophes non
Nom BDD comptes2009
Utilisateur BDD ***
Mot de passe ***
Table Comptes_etudiants
Champ nom d'utilisateur Compte
Champ mot de passe Pass
Format du mot de passe Texte en clair
Encodage de la base de données externe latin1
Commande pour configuration SQL
Débogage ADOdb non
URL pour changement de mot de passe
Script cron de synchronisation
Utilisateur externe supprimé Supprimer complètement l'utilisateur interne
Appariement des données
Prénom Prenom
A la création
Jamais
Déverrouillé
Nom Nom
A la création
Jamais
Déverrouillé
Adresse de courriel Email
A la création
Jamais
Déverrouillé
Ville
A la création
Jamais
Déverrouillé
Pays
A la création
Jamais
Déverrouillé
Langue
A la création
Jamais
Déverrouillé
Description Option
A la création
Jamais
Déverrouillé
Page Web
A la création
Jamais
Déverrouillé
Numéro d'identification
A la création
Jamais
Déverrouillé
Institution Categorie
A la création
Jamais
Déverrouillé
Département Section
A la création
Jamais
Déverrouillé
Téléphone 1
A la création
Jamais
Déverrouillé
Téléphone 2
A la création
Jamais
Déverrouillé
Adresse
A la création
Jamais
Déverrouillé

En réponse à Andrée-Anne Dostie

Re: Authentification sur base données externe MySQL

par Andrée-Anne Dostie,
Petit avancement...

J'ai retesté avec mon ancien fichier .csv... et ça marche nickel...

Donc je supute un problème d'encodage...

Mon ancien fichier .csv importé dans MySQL était créé grâce à une macro Excell et était donc en encodage latin1

Mon nouveau fichier .csv est exporté à partir de Access...
Je lui dit de codé en UTF-8... je met UTF-8 comme encodage dans Moodle...
Mais ça de marche pas...

Je continu à chercher...

En réponse à Andrée-Anne Dostie

Re: Authentification sur base données externe MySQL

par Andrée-Anne Dostie,
Bon...
Mon problème viens visiblement de Access... :/

J'ai créé une BDD MySQL 'Comptes2009'

J'y aie créé une première table 'Comptes_test' où j'ai importé mes comptes de l'année dernières en .CSV (fichier .csv créé grâce à une macro excel).

J'y aie créé une deuxième table 'Comptes_user' où j'ai importé mes comptes de cette année en .csv (fichier .csv créé grâce à la fonction export de Access 2002).

Lorsque je lis Moodle à la table Comptes_test, ça fonctionne superbement

Lorsque je lis Moodle à la table Comtpes_user, maintenant je reviens sur la page de connexion et j'ai ceci :

Déjà inscrit ?

Connectez-vous ici en utilisant votre nom d'utilisateur
et mot de passe
(Votre navigateur doit supporter les cookies)Aide sur Votre navigateur doit supporter les cookies (nouvelle fenêtre)
La connexion a échoué, merci d'essayer de nouveau
Nom d'utilisateur
 
Mot de passe
 
Alors, mon problème semble bien provenir du codage des données provenant de Access.... pourtant, dans access je lui dis d'exporter en UTF-8, dans Mysql je lui dit bien d'importer en UTF-8 et je dis bien à Moodle que les données liées sont en UTF-8...

Alors où il est mon blême ? triste

Edit :
Un peu d'eau à l'édifice, voici ce que j'obtiens sur le page de connexion quant j'active le deboguage de Moodle :

Incorrect string value: '\xE9s' for column 'institution' at row 1

INSERT INTO mdl_user ( AUTH, CONFIRMED, MNETHOSTID, USERNAME, FIRSTNAME, LASTNAME, EMAIL, INSTITUTION, DEPARTMENT, LANG, LASTIP, TIMEMODIFIED ) VALUES ( 'db', 1, 1, 'marine.chaidron9', 'Marine', 'CHAIDRON', 'marine.chaidron9@he-ferrer.eu', 'arts appliqu�s', 'Arts du tissu', 'fr_utf8', '83.101.51.80', 1253641204 )
  • line 1554 of lib\dmllib.php: call to debugging()
  • line 2889 of lib\moodlelib.php: call to insert_record()
  • line 3121 of lib\moodlelib.php: call to create_user_record()
  • line 128 of login\index.php: call to authenticate_user_login()

Notice: Trying to get property of non-object in E:\www_icampus\icampus\lib\moodlelib.php on line 3142

Bon... j'ai visiblement un problème avec les caractères spéciaux... OK...
Donc j'ai bel et bien un problème de codage d'accent...

En réponse à Andrée-Anne Dostie

Re: Authentification sur base données externe MySQL

par Andrée-Anne Dostie,
J'ai trouvé !

En mettant le codage en 'latin1' sous Moodle, ça marche...

ça ne suis selon moi aucune logique puisque dans access je disais de coder en UTF-8, mais bon, je me refuse à comprendre, tant que ça marche !
Moyenne des évaluations Utile (1)