•  » Utilisation
  •  » Utiliser une arborescence existante

#16 2013-10-10 13:07:38

flop25
Équipe Piwigo
2006-07-06
6544

Re: Utiliser une arborescence existante

en fait c'est juste import tree non ?
i.php utilise sync_chars_regex

Hors ligne

#17 2013-10-10 13:11:17

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

Non, i.php doit être patché aussi, il fait ça :

    $query = '
SELECT *
  FROM '.$prefixeTable.'images
  WHERE path=\''.$page['src_location'].'\'
;';

Et là, pas de bol y'a une apostrophe dans src_location (on en revient à Surfer's Paradise) du coup, paf, la requête échoue.
Il faut donc bien patcher pour appeler  mysql_real_escape_string (ou plutôt pwg_db_real_escape_string)

Hors ligne

#18 2013-10-10 13:13:43

flop25
Équipe Piwigo
2006-07-06
6544

Re: Utiliser une arborescence existante

donc Import tree et i.php doivent être patchés
vous pouvez ouvrir un ticket pour i.php ? merci

Hors ligne

#19 2013-10-10 13:44:11

obones
Membre
2012-11-12
21

Re: Utiliser une arborescence existante

C'est fait pour i.php : [Bugtracker] ticket 2971
Pour le reste, vous vous en chargez ?

Hors ligne

#20 2013-10-13 11:07:17

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

Re: Utiliser une arborescence existante

Parfait, merci obones (il y a le lien vers ce topic dans le bugtracker, donc si nécessaire on repassera ici)


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

Hors ligne

#21 2015-03-15 20:09:44

SabCBien
Invité

Re: Utiliser une arborescence existante

Bonjour à tous,

D'abord merci à tous pour les explications.
Après m'être "un peu" amusé avec la gestion des noms de fichiers pour la synchro (apostrophes, accents, tout ça...), je déterre ce sujet, car il me semble (mais je peux hautement me tromper !) qu'il y a une correction en plus à apporter au fichier /include/dblayer/functions_mysql.inc.php (et  /include/dblayer/functions_mysqli.inc.php)

En effet, même en modifiant les 5 lignes indiquées par OBones, une erreur d'insert survenait encore.
Je ne l'ai plus après avoir modifié également la ligne 467 (functions_mysql.inc.php) et 544 (functions_mysqli.inc.php) telle que :

Code:

foreach ($dbfields as $field_id => $dbfield)
      {
        if ($field_id > 0)
        {
          $query .= ',';
        }

        if (!isset($insert[$dbfield]) or $insert[$dbfield] === '')
        {
          $query .= 'NULL';
        }
        else
        {
          $query .= "'".pwg_db_real_escape_string($insert[$dbfield])."'";
        }
      }
      $query .= ')';

Sans ces corrections, je n'arrive pas à ajouter de photos comportant des apostrophes. Cependant, les versions ayant pas mal avancé, peut-être n'est-ce plus la bonne correction ?
Pour ma part je suis à l'heure actuelle en 2.7.4.

D'autre part, j'en profite pour ajouter une question sur le fichier i.php : en ligne 471, il affiche maintenant

Code:

WHERE path=\''.addslashes($page['src_location']).'\'

ce qui n'était pas le cas en version 2.6.1 (et peut être autres, j'ai fait un gros saut).
Ce addslashes va-t-il suffire, car OBones préconisait un pwg_db_real_escape_string (ce que j'avais fait en 2.6.1 et qui fonctionnait).
Je demande cela car il me semble pour les échappements bdd sont gérés expressément par les "_real_escape_string() ".
Mais peut-être l'échappement ds i.php ne concerne-t-il pas les accés à la mysql.

Merci de votre attention !

  •  » Utilisation
  •  » Utiliser une arborescence existante

Pied de page des forums

Propulsé par FluxBB

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