Bonjour/Bonsoir,
Sur une version tout fraîche de Piwigo 13.1.0 lorsque je saisis des commentaires sur une photo la requête de mise à jour est en échec :
UPDATE `piwigo_images`
SET `id` = '462',
`name` = 'CCI 40 ans 2022 01 16',
`author` = NULL,
`level` = '0',
`comment` = 'Test de l'abordage du bug',
`date_creation` = '2022-01-16 11:55:06'
WHERE `id` = '462'
En effet dans le champ "comment" l'apostrophe de "l'abordage" pose problème.
J'ai indiqué à l'utilisateur d'utiliser les doubles-apostrophes en attendant.
Y a-t-il un paramètre de config que j'ai loupé pour éviter ce problème ?
Version de Piwigo: 13.1.0
Version de PHP: 8.0.24
Version de MySQL: 10.5.15-MariaDB-0+deb11u1
Merci pour votre aide.
Eric.
Dernière modification par Tessiture (2022-10-27 10:47:37)
Hors ligne
Bonjour
Oui effectivement ! J'avais noté quelque part qu'il fallait ajouter htmlspecialchars(stripslashes( Ou addslash
pour les commentaires mais où ? Dans quel fichier ?
A très vite
Hors ligne
Bonjour,
@Tessiture commentaire à partir d'un page de navigateur ou depuis une appli ?
Un plugin d'activé en lien avec les commentaires ?
Hors ligne
Bonjour à tous,
Merci de vous pencher sur mon problème.
J'édite la photo avec l'URL /admin.php?page=photo-462 depuis le navigateur,
puis je saisis le commentaire dans le champ "Description"
Aucun plugin n'est installé, et j'utilise le thème par défaut Modus.
J'ai reproduit le bug sur un autre Piwigo installé sur un autre serveur.
Merci,
Eric.
Hors ligne
Bonjour
@Tessiture ok donc ce n'est pas du touts les commentaire mais la description d'une photo en admin ?
Hors ligne
Tessiture a écrit:
Oui c'est cela, pardon pour l'imprécision.
Eric.
Non pas de problème c'est pour que l'on parle bien de la même chose !
Hors ligne
Bonjour,
Je suis allé faire un tour dans le code /include/dblayer/functions_mysqli.inc.php
Quand je change la ligne 441 avec le code suivant :
$query.= $separator.protect_column_name($key).' = \''.addslashes($value).'\'';
càd en ajoutant la fonction addslashes, le problème est résolu.
https://www.php.net/manual/en/function.addslashes.php
Par contre je ne sais pas dire si cela peut avoir un effet de bord sur d'autres mises à jour.
Est-ce que l'échappement des caractères spéciaux est fait dans les fonctions ou est-ce qu'il faut le centraliser comme je l'ai fait ?
Eric.
Hors ligne