ddtddt a écrit:
oui
il fonctionne avec des forums et avec d'autre script
Mais cette partie est à améliorer
Toutes tes réflexions sur le sujet son les bienvenus
Par contre il n'y a pas de dev sur le coup pour le moment.
Comment expliquer mon problème alors?
Pour moi cela fonctionnait niquel avec piwigo 2.1, upgradé depuis en 2.2, mais avec une nouvelle install en 2.2 c'est walou...
J'ai testé avec plusieurs tables externe du coup mais avec le même résultat
oui
il fonctionne avec des forums et avec d'autre script
Mais cette partie est à améliorer
Toutes tes réflexions sur le sujet son les bienvenus
Par contre il n'y a pas de dev sur le coup pour le moment.
Bonjour à tous,
Est-ce que quelqu'un d'autre à utilisé la fonctionnalité d'authentification externe avec succès?
Est il possible d'enregistrer un bug sur le sujet ou est-ce que cela viendrait de mon installation?
Merci
En me plongeant un peu plus dans le code je remarque quelques bizarreries dans le fichiers functions_users.php, plus précisemment dans la fonction getuserdata (ligne 266):
A priori cette partie pose problème :
// retrieve additional user data ? if ($conf['external_authentification']) { $query = ' SELECT COUNT(1) AS counter, FROM '.USER_INFOS_TABLE.' AS ui LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme WHERE ui.user_id = '.$user_id.' GROUP BY ui.user_id ;'; if (pwg_db_fetch_row(pwg_query($query))!=1) { create_user_infos($user_id); $result = pwg_query($user_info_query); $user_infos_row = pwg_db_fetch_assoc($result); } }
Il semlberai que la , après "AS counter" ne soit syntaxiquement correcte.
De même la requête est stockée dans la variable $query et la fonction pwg_query utilise une variable $user_info_query
De même, si on utilise une authentification externe, on écrase le résultat de la requete ligne 297 :
$query = ' 297 SELECT 298 ui.*, 299 uc.*, 300 t.name AS theme_name 301 FROM '.USER_INFOS_TABLE.' AS ui 302 LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id 303 LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme 304 WHERE ui.user_id = '.$user_id.' 305 ;'; 306 307 $result = pwg_query($query); 308 $user_infos_row = pwg_db_fetch_assoc($result); 309
puisque le résultat est stocké dans la même variable.
A priori, au vu des messages d'erreur cela semble poser problème aussi
Bonjour,
J'ai un peu avancé sur le sujet.
Je me suis rendu compte d'une erreur que j'avais fait, j'avais mal comprit l'utilisation de la variable "external_authentication".
Je l'ai donc repassé à false et cela fonctionne correctement.
$conf['external_authentification'] = false;
J'ai un autre probleme maintenant, c'est que ma table `users_info` ne se remplit pas.
Du coup l'authentification ne fonctionne pas.
Par contre lorsque je remplit manuellement la table avec l'id qui correspond à mon utilisateur cela fonctionne sans probleme.
Est-ce que par hasard j'aurai touché un truc qu'il ne faudrait pas?
ddtddt a écrit:
encodage des mots de passe est bien en MD5 dans l'autre programme ?
non c'est sha1, c'est pour ça que j'ai surchargé le $conf['pass_convert']
encodage des mots de passe est bien en MD5 dans l'autre programme ?
Hum hum, par contre dès que je remet mon fichier c'est la catastrophe...
Une idée sur le pourquoi qui génèrerait cette erreur?
Le probleme c'est que je ne peux plus me connecter, donc je ne peux pas purger les templates.
Par contre j'ai accès au serveur, donc je peux les purger manuellement si tu me dit ou les trouver.
Je n'ai pas d'utilisateur appelé guest dans mon autre table, j'ai juste donné l'identifiant d'un utilisateur par défaut.
Edit:
C'est bon, en purgeant les templates dans _data/templates_c et en renommant mon fichier de config j'arrive à me reconnecter sans soucis.
c'est bien le bon endroit
Si vous supprimer/renommer config.inc, et purger les template dans maintenance, vous avez encore des erruers ?
Aussi est-ce que dans votre authentification externe vous avez un utilisateur appelé guest ?
Le fichier s'appelle config.inc.php et est placé dans local/config
Je ne sais pas si je l'ai déjà mis, mais même lorsque je supprime mon fichier, l'erreur reste présente, pas moyen de revenir a une situation normale.
juste pour être certain : où avez vous placé et comment avez vous nommé votre fichier de config locale ?
ddtddt a écrit:
je pense qu'il manque la partie du code qui indique la correspondance entre les différentes table
// user_fields : mapping between generic field names and table specific
// field names. For example, in PWG, the mail address is names
// "mail_address" and in punbb, it's called "email".
$conf['user_fields'] = array(
'id' => 'id',
'username' => 'username',
'password' => 'password',
'email' => 'mail_address'
);
---------
de plus il faut prévoir dans ta table utilisateur un user qui servira d'invité
(tu peux définir sons ID avec
$conf['guest_id'] = 2;
Cette partie est déjà présente dans mon fichier (scroll sur le code ;) )
je pense qu'il manque la partie du code qui indique la correspondance entre les différentes table
// user_fields : mapping between generic field names and table specific
// field names. For example, in PWG, the mail address is names
// "mail_address" and in punbb, it's called "email".
$conf['user_fields'] = array(
'id' => 'id',
'username' => 'username',
'password' => 'password',
'email' => 'mail_address'
);
---------
de plus il faut prévoir dans ta table utilisateur un user qui servira d'invité
(tu peux définir sons ID avec
$conf['guest_id'] = 2;
Je précise que lorsque je m'authentifie, je suis redirigé vers une page blanche avec beaucoup d'erreurs :
Warning: [mysql error 1064] Erreur de syntaxe pr�s de '' � la ligne 4
SELECT DISTINCT(id)
FROM piwigo_images INNER JOIN piwigo_image_category ON id=image_id
WHERE category_id NOT IN (0)
AND level> in/piwigo/include/dblayer/functions_mysql.inc.php on line 654
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /var/www/mandogo.fr/piwigo/include/dblayer/functions_mysql.inc.php on line 200 Notice: Undefined index: level in /var/www/mandogo.fr/piwigo/include/functions_user.inc.php on line 690
Warning: [mysql error 1064] Erreur de syntaxe pr�s de 'GROUP BY c.id, c.global_rank' � la ligne 8
SELECT c.id AS cat_id, global_rank,
MAX(date_available) AS date_last, COUNT(date_available) AS nb_images
FROM piwigo_categories as c
LEFT JOIN piwigo_image_category AS ic ON ic.category_id = c.id
LEFT JOIN piwigo_images AS i
ON ic.image_id = i.id
AND i.level<=
Et en bas de la page :
You are not authorized to access the requested page
Identification Home