Annonce

  •  » Utilisation
  •  » Synchronisation impossible avec une apostrophe dans un nom de dossier

#1 2019-09-25 23:13:48

SyntaxError
Membre
2015-10-29
3

Synchronisation impossible avec une apostrophe dans un nom de dossier

Bonsoir,

Je rencontre un bug quand je tente une synchronisation d'une grande structure de dossiers contenant des milliers de photos avec des noms en UTF-8. Certains dossiers possèdent des espaces, guillemets et apostrophes (genre "Fête de l'école").

Ma config :
Piwigo 2.9.5
Système d'exploitation: Linux
PHP: 5.6.40-0+deb8u5 (Montrer les informations) [2019-09-25 21:49:46]
MySQL: 5.5.62-0+deb8u1 [2019-09-25 21:49:46]
Bibliothèque graphique: ImageMagick 6.8.9-9

En mode simulation, tout va bien :

[Simulation] Chercher les nouvelles images dans les répertoires
1460 albums ajoutés dans la base de données
14099 photos ajoutées dans la base de données
0 albums supprimés de la base de données
0 photos supprimées de la base de données
0 photos mises à jour dans la base de données
0 erreurs survenues durant la synchronisation
[Simulation] Résultat de la synchronisation des méta-données
0 informations des photos synchronisées avec les méta-données
0 photos candidates à la synchronisation avec les méta-données
Méta-données employées : filesize, width, height, date_creation, latitude, longitude

Quand j'exécute en vrai, j'ai une erreur mySQL lié à la requête SQL qui contient un apostrophe dans le nom d'un dossier :

Warning:  [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 'école','Fête de l'école','1','1620','1594,1620,1623','true','true','public','' at line 74

INSERT  INTO piwigo_categories
  (id,dir,name,site_id,id_uppercat,uppercats,commentable,visible,status,rank,global_rank)
  VALUES('1552','1995','1995','1',NULL,'1552','true','true','public','6','6')
  , ('1553','Sarlat','Sarlat','1','1552','1552,1553','true','true','public','1','6.1')
  , ('1554','Anniversaires','Anniversaires','1','1552','1552,1554','true','true','public','2','6.2')
  , ('1555','Françoise','Françoise','1','1554','1552,1554,1555','true','true','public','1','6.2.1')
  , ('1556','André','André','1','1554','1552,1554,1556','true','true','public','2','6.2.2')
  , ('1557','Christelle','Christelle','1','1554','1552,1554,1557','true','true','public','3','6.2.3')
  , ('1558','Antoine','Antoine','1','1554','1552,1554,1558','true','true','public','4','6.2 in /home/www/XXX.XXX.com/include/dblayer/functions_mysqli.inc.php on line 845

Warning:  [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 ')
    AND status = 'private'' at line 3

SELECT id
  FROM piwigo_categories
  WHERE id IN ()
    AND status = 'private'
; in /home/www/XXX.XXXX.com/include/dblayer/functions_mysqli.inc.php on line 845

L'apostrophe du champ "Fête de l'école" d'un de mes répertoires est clairement rejeté.

J'ai pourtant autorisé le caractère dans la config :
$conf['sync_chars_regex'] = '/^[a-zA-Z0-9-_. ()ÉêÎàéèçëû&ùêôãúâîüïœ\'-]+$/';

Est il possible de résoudre ce problème car je n'ai pas envie de traduire tous mes noms de dossiers avec des caractères simplifiés ! Ce problème doit être tellement courant que je n'ose pas imaginer qu'il n'y ait pas de solution ;-)

Merci de vos lumières de spécialistes !

David

Dernière modification par SyntaxError (2019-09-25 23:24:46)

Hors ligne

#2 2019-09-26 06:42:29

ddtddt
Équipe Piwigo
Quetigny (21) - France
2007-07-27
15686

Re: Synchronisation impossible avec une apostrophe dans un nom de dossier

Bonjour,

à mon avis cela va pas être évident ' étant le symbole qui annonce la fin de la chaine à traiter
pour que cela fonctionne il faut que tu cherche dans les fichiers la requête et que tu remplace ' par " mais dans ce cas tu azura le problème pour les répertoire qui auront un " dans leur nom ...


Vous aimez Piwigo alors n'hésitez pas à participer avec nous, plus d'infos sur la page "Contribuer à Piwigo". Si vous n'avez pas beaucoup de temps et que vous souhaitez nous soutenir vous pouvez aussi le faire par un don.

Hors ligne

#3 2019-09-26 12:00:35

Katryne
Membre
Provence
2016-12-03
805

Re: Synchronisation impossible avec une apostrophe dans un nom de dossier

Hello !
J'ai plusieurs collaborateurs sur le Piwigo collectif. Et j'ai donné pour instructions de ne mettre dans les noms d'album et sous albums ainsi que dans les noms de fichiers : pas d'espace, pas d'accent, pas d'apostrophe rien que des chiffres et des lettres (qui peuvent être en majuscules) et parmi les signes seulement le tiret du 6 et le tiret du 8.
Les seuls erreurs d'affichage que j'ai eues concernaient un espace qui s'était glissé par inadvertance entre la fin du nom et le point de l'extension.

C'est un principe que j'ai toujours appliqué et fait appliquer depuis la nuit des temps et je ne pense pas que sous cet aspect, le web soit devenu plus permissif.

Par contre, sur mes Piwigo, j'ai personnalisé l'affichage des titres de page (album et photo) qui est différent des noms de répertoire et de fichiers photos pour plus de confort de lecture.

Dernière modification par Katryne (2019-09-26 12:02:07)


https://photos.revestou.fr/  (Test même config: http://photos.katrynou.fr/)
Piwigo 2.10.2 -  Système d'exploitation: Linux - Hébergeur 1&1-Ionos
PHP: 7.3.15 - MySQL: 5.7.28-log
Bibliothèque graphique: External ImageMagick 6.8.9-9

Hors ligne

  •  » Utilisation
  •  » Synchronisation impossible avec une apostrophe dans un nom de dossier

Pied de page des forums

Propulsé par FluxBB

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