•  » Utilisation
  •  » Pb avec table galerie_user_access

#1 2005-12-31 15:10:07

drÖne
Invité

Pb avec table galerie_user_access

J'avais installé phpwebgallery sans aucun problème, ça fonctionnait très bien, mais aujourd'hui j'obtiens ceci lors de toutes mes ten,tatives de connection :

SELECT cat_id
  FROM galerie_user_access
  WHERE user_id =
;
[mysql error 1064] You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

Entre temps, j'ai simplement retrogradé mon phpnuke vers une version antérieure plus sûre, je ne sais pas si ça a pu avoir des effets sur la base sql ?

Des idées pour m'aider ? Merci d'avance.

#2 2005-12-31 15:12:25

anenonime
Membre
2005-12-31
5

Re: Pb avec table galerie_user_access

C'est normal aucun utilisateur n'est sélectionné dans ta requête... id=? (l'est peut être mort ?)

Hors ligne

#3 2005-12-31 16:34:25

drÖne
Invité

Re: Pb avec table galerie_user_access

J'espère qu'il n'est pas mort... Mais comment faire, justement, pour que ce champ ne soit pas vide alors que la table devrait imposer qu'il ne soit pas vide ? Le défaut est mis à zéro, mais même quand j'essaie de mettre une valeur différente par défaut, rien ne change. D'autre part, même la page admin.php n'est plus fonctionnelle et affiche le même message d'erreur.

+A+

#4 2005-12-31 19:11:09

drÖne
Invité

Re: Pb avec table galerie_user_access

Ah, et j'avais oublié de préciser : ce message s'affiche à la place de la page d'accueil ! Au lieu de ma galerie. Je ne sais pas si c'était clair dans mon premier post.

+A+

#5 2006-02-02 17:14:38

Scipion
Membre
2006-02-02
12

Re: Pb avec table galerie_user_access

Moi j'ai le même type d'erreur quand j'utilise les fonctionnalités de "mapping" de la table users :

$conf['users_table'] = 'wp_users';
$conf['user_fields'] = array(
  'id' => 'ID',
  'username' => 'user_login',
  'password' => 'user_pass',
  'email' => 'user_email'
  );

pour partager la table des users entre PWG et WP.

J'ai le même message que vous quand je me déconnecte de PWG et seulement quand je me déconnecte. Suite à cette erreur je ne peux plus rien faire. La seule solution pour moi et de rétablir la config par défaut en effaçant ma config locale (cf. ci-dessous).

C'est dommage car le reste fonctionne bien : création users, update users, effacement users...

Bref, une idée ?

Complément d'infos :
1 - origine semble venir de la fonction calculate_ permissions dans le fichier functions_user.inc.php
2 - j'ai ce message seulement quand je déco avec un compte 'admin' jamais avec un compte 'guest'

Dernière modification par Scipion (2006-02-02 17:29:42)

Hors ligne

#6 2006-02-03 22:22:16

Scipion
Membre
2006-02-02
12

Re: Pb avec table galerie_user_access

Bon je tente de m'aider et de me répondre ;-)

Nouvelle piste :

Dans la fonction : getuserdata de function_user.inc.php, il me semble qu'il doit y avoir un problème de type ou je ne sais quoi. En effet, le symptôme précédemment décrit faisait état d'une perte d'info ID user. J'ai donc modifié la fonction en question comme suit :

Code:

  foreach ($row as $key => $value)
  {
    if (!is_numeric($key))
    {
      // If the field is true or false, the variable is transformed into a
      // boolean value.
      if ($value == 'true' or $value == 'false')
      {
        $userdata[$key] = get_boolean($value);
      }
      else
      {
        $userdata[$key] = $value;
      }
    }
  }
  if ($use_cache)
  {
    if (!isset($userdata['need_update'])
        or !is_bool($userdata['need_update'])
        or $userdata['need_update'] == true)
    {
      $userdata['forbidden_categories'] =
        calculate_permissions($userdata['id'], $userdata['status']);

par

Code:

  foreach ($row as $key => $value)
(...)
      $userdata['id'] = $user_id ; // ma modif toute moche
      $userdata['forbidden_categories'] =
        calculate_permissions($userdata['id'], $userdata['status']);

et là tout va mieux ! Ca fonctionne très bien :-)

Je me demande si le problème ne vient pas de mon type de ID entre PWG et WP. C'est : if (!is_numeric($key)) qui m'interpèle ! Est-ce que ça vient de là ?

Dans PWG l'ID user est de type smallint(5) est dans WP de type bigint(20). Ok dans ce cas je me lance et je change le type de l'ID dans WP et le transforme en smallint(5) juste pour voir et j'enlève mon truc tout moche qui fait la différence ;-) Et bien rien pareil ça coince. Bon là je sèche et surtout je suis pas expert alors si une âme charitable trouve la cause du problème ce serait cool.

Merci par avance pour votre aide.

Hors ligne

#7 2006-02-03 22:47:08

VDigital
Former Piwigo Team
Montpellier (FR)
2005-05-04
15127

Re: Pb avec table galerie_user_access

Un grand Merci pour ta solution. Tu as deux mois d'avance sur moi et même peut être un peu plus.
Je relierai WP et PWG moi aussi.


Vincent -« Plus vidéaste averti que photographe amateur... »
La galerie - Le blog   

Piwigo est une application libre de gestion de photos en ligne.

Hors ligne

#8 2006-02-03 23:11:03

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12672

Re: Pb avec table galerie_user_access

(problème intéressant)

Scipion a écrit:

Je me demande si le problème ne vient pas de mon type de ID entre PWG et WP. C'est : if (!is_numeric($key)) qui m'interpèle ! Est-ce que ça vient de là ?

Que veut dire if (!is_numeric($key)) ? $key contient une clef du tableau associatif $row. $row est obtenu par la fonction mysql_fetch_array qui renvoit la fusion de deux tableaux associatifs : le premier avec pour clefs les indices numériques des colonnes retournées, le second avec pour clefs les noms des colonnes. Concrêtement :

Code:

$row = array(
  0 => 124,
  'id' => 124,
  1 => 'pierrick',
  'username' => 'pierrick'
);

Or dans $userdata, je ne souhaite récupérer que les clefs 'id' et 'username'. D'où le test is_numeric, inversé.

Cette explication ne résout pas notre problème. Pour cela, j'ai besoin de toi. Après le foreach et avant le if($use_cache), insère

Code:

print "<pre>";
print_r($userdata);
print "</pre>";

On va voir ce qu'il a dans le ventre.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#9 2006-02-04 16:14:09

Scipion
Membre
2006-02-02
12

Re: Pb avec table galerie_user_access

Merci pour ces éclairecissements. Il apparaît évident vu ma question sur le isnumeric que je ne suis pas expert :-). Mais je suis tenace. Et avec quelques bouts de ficelles et beaucoup de patience, j'essaye de suivre et de faire avancer le « machin » ;-)

J'ai donc procédé au test ci-dessus comme demandé en rajoutant le « mocuhard » qui va bien. Au surprise tout est là même le user_id !!! Bigre je n'y comprends plus rien. Pire encore plus de problème, plus de bug, il s'est envolé. Là je commence vraiment à me poser des questions.

Tenace je vous disais plus haut. J'ai tout remis à plat en commençant par supprimer tous mes cookies et remettant la config à celle d'origine. Et là PAF le bug :

Code:

Array
(
    [user_id] => 
    [nb_image_line] => 5
    [nb_line_page] => 3
    [status] => guest
    [language] => fr_FR.iso-8859-1
    [maxwidth] => 
    [maxheight] => 
    [expand] => 
    [show_nb_comments] => 
    [recent_period] => 7
    [template] => jillij-photon
    [registration_date] => 2006-02-04 16:00:48
    [need_update] => 
    [forbidden_categories] => 
)

SELECT cat_id
  FROM phpwebgallery_user_access
  WHERE user_id = 
;
[mysql error 1064] Erreur de syntaxe pr??s de '' ŕ la ligne 3

Je me demande si ce n'est pas lié aux cookies. Du genre, quand tu as en bonne place mon truc tout moche tout va bien (tu généres les bons cookies). Tu peux même la supprimer cette ligne et tout va pour le mieux. MAIS dès que tu supprimes tous tes cookies ET que tu n'as pas mon truc moche et bien PAF le bug !

J'espère ne pas être trop confus. Est-ce que tout ça vous parle ?

Merci encore pour votre aide afin d'élucider ce mystère.

Oh ! Au fait ! Si je vous demande tout ça c'est que comme indiqué j'essaye pour un besoin perso d'intégrer PWG et WP au travers de la solution Jillij. J'ai déjà quelque chose en place (sur mon site perso) et qui fonctionne bien (mes utilisateurs sont ravis). C'est basé sur une synchro des DEUX tables users et une évolution du plug-in Photon. J'aime pas trop mais bloquant sur le mapping j'ai pas eu le choix. J'ai transmis mes modifs à Jillil en espérant qu'il trouve le temps d'intégrer tout ça dans une prochaine release de Photon. Si entre temps j'arrive à comprendre où je bloque les perspectives de simplification de code sont énormes ;-)

En attendant... je cherche !

Hors ligne

#10 2006-02-06 17:04:26

Scipion
Membre
2006-02-02
12

Re: Pb avec table galerie_user_access

Bon voilà j'ai pas résisté et j'ai ajouté mon truc tout moche dans le fichier functions_user.inc.php :

Code:

  if ($use_cache)
  {
    if (!isset($userdata['need_update'])
        or !is_bool($userdata['need_update'])
        or $userdata['need_update'] == true)
    {


      // debut de mon truc tout moche
      if ($user_id)
      {
        $userdata['id'] = $user_id ;
        $userdata['user_id'] = $user_id ;
      }
      // fin de mon truc tout moche


      $userdata['forbidden_categories'] =
        calculate_permissions($userdata['id'], $userdata['status']);

Du coup, j'ai pu installer PWG et WP en partageant la table des users et ce grâce au superbe template/intégration de Jillij et en y rajoutant mes petits "hooks" qui vont bien dans le plugin Photon. Pour le moment ça fonctionne. Je croise les doigts.

A votre avis mon truc tout moche va tenir le coup ? Ne va t'il pas rajouter plus de problèmes tôt ou tard ? Dans tous les cas, si ça se produit je vous fais signe.

Je vais renvoyer l'ensemble des mes modifs à Jillij qui peut-être les intégrera dans une nouvelle version de Photon (même si c'est pas parfait).

Merci encore pour l'aide que vous avez déjà bien voulu m'apporter.

Hors ligne

#11 2006-02-08 11:03:10

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12672

Re: Pb avec table galerie_user_access

Merci Scipion d'avoir fait le print_r de $userdata, c'est très révélateur. Il te manque les clefs {id,password,username,email} qui sont celle de la table de référence des utilisateurs. La table de Wordpress dans ton cas. On continue les tests...

- Peux-tu afficher la première requête de la fonction getuserdata et la montrer. Pour l'afficher, avant

Code:

$row = mysql_fetch_array(pwg_query($query));

insères :

Code:

print "<pre>";
print_r($query);
print "</pre>";

- executer directement cette requête avec ton gestionnaire de base de données et nous donner le résultat.

- de la même manière que tu as affiché le contenu du tableau associatif $userdata, affiche le contenu du tableau associatif $row (au même moment que l'affichage de $userdata)


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#12 2006-02-09 21:31:27

Scipion
Membre
2006-02-02
12

Re: Pb avec table galerie_user_access

Ajout du "mouchard" avant le $row... donne:

Code:

SELECT ID AS id
     , user_login AS username
     , user_pass AS password
     , user_email AS email
  FROM wp_users
  WHERE ID = '-1'
;

SELECT cat_id
  FROM phpwebgallery_user_access
  WHERE user_id = 
;
[mysql error 1064] Erreur de syntaxe pr�?s de '' ŕ la ligne 3

De ma compréhension tout est OK.

La requête en directe exécutée avec phpMyAdmin donne rien car en fait dans ma table wp_users je n'ai pas de ID = '-1' équivalent au user_id "guest" de PWG. En effet, je crains que ce type de compte "guest" n'existe pas dans WP.

Est-ce que tout bêtement j'ai cette erreur à cause de ce manque ? J'ai presque honte là... D'un autre côté, ça -//:---\spam les limites du mapping. Arf ! Faut-il créer un compte de type "guest" dans la table wp_users pour que cela fonctionne normalement ? Je vais essayer de "trifouiller" ça juste pour voir.

Dernière modification par Scipion (2006-02-09 21:32:38)

Hors ligne

#13 2006-02-09 21:37:47

Scipion
Membre
2006-02-02
12

Re: Pb avec table galerie_user_access

Bon j'arrive pas à bidouiller la base.

Hum ça me laisse perplexe tout ça...

Hors ligne

#14 2006-02-10 08:28:23

plg
Équipe Piwigo
Nantes, France, Europe
2002-04-05
12672

Re: Pb avec table galerie_user_access

Scipion a écrit:

Est-ce que tout bêtement j'ai cette erreur à cause de ce manque ? J'ai presque honte là... D'un autre côté, ça -//:---\spam les limites du mapping. Arf ! Faut-il créer un compte de type "guest" dans la table wp_users pour que cela fonctionne normalement ? Je vais essayer de "trifouiller" ça juste pour voir.

OK, on a bien cerné le problème maintenant. Il faut que cet utilisateur existe dans wp_users. Certes c'est une limite de la configuration du mapping : c'est à l'administrateur de s'assurer que les paramètres sont cohérents. De même, tu aurais pu faire une erreur dans le nom des colonnes.

Pour faire court, créé un nouvel utilisateur dans WordPress, trouves son ID et dis à PWG que c'est le guest.


Les historiens ont établi que Pierrick était le premier utilisateur connu de Piwigo.

Hors ligne

#15 2006-02-10 20:53:33

Scipion
Membre
2006-02-02
12

Re: Pb avec table galerie_user_access

z0rglub a écrit:

Pour faire court, créé un nouvel utilisateur dans WordPress, trouves son ID et dis à PWG que c'est le guest.

Oh ! grand maître du "php", grand manitou du "web" et gand sage parmi les sages de la "gallery", j'ai pu grâce à vos conseils avisés et votre patience légandaire découvrir le grall tant convoité.

J'ai enfin pu intégrer PWG et WP au travers du template Jillij sans problème et surtout un minimum de code. Je m'empresse de soumettre les changements à Jillij.

Merci à vous et à bientôt (désolé pour ce manque de discernement et cette erreur de "jeunesse")

Dernière modification par Scipion (2006-02-10 20:55:53)

Hors ligne

  •  » Utilisation
  •  » Pb avec table galerie_user_access

Pied de page des forums

Propulsé par FluxBB

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