Bonjour à tous !
Suite au signalement de fynhooft dans cette discussion http://forum.joomla.fr/showthread.ph...du-fichier-SQL se pose à moi le problème de la correction de l'erreur rencontrée.
En effet, les versions PDO jusqu'à la 3.5.2 de LazyDbBackup utilisent un traitement de données manifestement inadapté avec htmlspecialchars qui transforme les "é" et autres entités du même type enregistrées dans d'anciennes versions de Joomla! en "é", ce qui est incorrect et se retrouve à l'identique en cas de restauration de la sauvegarde via phpMyAdmin, "é" ne devant pas être "traduit".
Le code actuel est donc
Sa réduction à
me semble ne pas poser de problèmes lors de mes tests, mais j'aurais besoin de l'avis de développeurs chevronnés, mes connaissances et mes recherches sur la toile ne m'ayant pas permis de trouver la meilleure méthode pour traiter les données des tables MySQL.
Le problème est que je ne retrouve plus pourquoi j'avais utilisé ce traitement par htmlspecialchars lorsque j'ai modifié LazyDbBackup pour passer en accès aux données PDO plutôt que MySQL ou MySQLi !
Dans la discussion citée, j'évoquais la possibilité d'utiliser html_entities_decode pour transformer ces "é" en "é" avant l'utilisation de htmlspecialchars, mais la restauration de la base est alors incorrecte et le site ne s'affiche plus correctement. J'ai donc abandonné cette idée.
Pensez-vous que la correction du code par suppression de htmlspecialchars n'aura aucun impact négatif sur les sauvegardes en question ?
Je vous remercie par avance de vos conseils,
Robert
Suite au signalement de fynhooft dans cette discussion http://forum.joomla.fr/showthread.ph...du-fichier-SQL se pose à moi le problème de la correction de l'erreur rencontrée.
En effet, les versions PDO jusqu'à la 3.5.2 de LazyDbBackup utilisent un traitement de données manifestement inadapté avec htmlspecialchars qui transforme les "é" et autres entités du même type enregistrées dans d'anciennes versions de Joomla! en "é", ce qui est incorrect et se retrouve à l'identique en cas de restauration de la sauvegarde via phpMyAdmin, "é" ne devant pas être "traduit".
Le code actuel est donc
$value = htmlspecialchars(addslashes($value);
$value = addslashes($value));
Le problème est que je ne retrouve plus pourquoi j'avais utilisé ce traitement par htmlspecialchars lorsque j'ai modifié LazyDbBackup pour passer en accès aux données PDO plutôt que MySQL ou MySQLi !
Dans la discussion citée, j'évoquais la possibilité d'utiliser html_entities_decode pour transformer ces "é" en "é" avant l'utilisation de htmlspecialchars, mais la restauration de la base est alors incorrecte et le site ne s'affiche plus correctement. J'ai donc abandonné cette idée.
Pensez-vous que la correction du code par suppression de htmlspecialchars n'aura aucun impact négatif sur les sauvegardes en question ?
Je vous remercie par avance de vos conseils,
Robert
Commentaire