Écrire une réponse

Veuillez écrire votre message et l'envoyer

Cliquez dans la zone sombre de l'image pour envoyer votre message.

Retour

Résumé de la discussion (messages les plus récents en premier)

judedie
2011-06-08 16:48:18

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

ddtddt
2011-06-06 17:44:39

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.

judedie
2011-06-06 15:15:45

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

judedie
2011-05-19 16:08:00

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 :

Code:

// 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 :

Code:

 $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

judedie
2011-05-19 14:59:05

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?

judedie
2011-05-18 15:08:08

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']

ddtddt
2011-05-18 15:00:02

encodage des mots de passe est bien en MD5 dans l'autre programme ?

judedie
2011-05-18 14:58:20

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?

judedie
2011-05-18 14:35:39

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.

flop25
2011-05-18 14:30:20

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 ?

judedie
2011-05-18 14:25:39

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.

flop25
2011-05-18 14:10:13

juste pour être certain : où avez vous placé et comment avez vous nommé votre fichier de config locale ?

judedie
2011-05-18 13:59:29

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 ;) )

ddtddt
2011-05-18 13:57:20

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;

judedie
2011-05-18 12:13:45

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

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact