Skip to content

Issue #5095 : Ne pas casser une meta serializee quand un utilisateur saisit un emoji dans un formulaire de configuration

cerdic a demandé de fusionner issue_5095 vers master

C'est un fix partiel, a minima, qui traite un cas d'usage (les formulaires de configuration), mais au moins c'est sans rupture de compatibilité

Dans ecrire_config() on regarde si le contenu contient des planes qui risquent d'être convertis en entites html. Dans ce cas, après ecriture en base de la valeur serializee on relit sql pour verifier que la valeur est identique. Si elle a été modifiée, alors on applique utf8_noplanes recursivement sur le tableau de config avant de le re-serializer et ecrire en base.

Ainsi dans le cas d'une base sqlite ou mysql en utf8mb4 dans lequel l'utilisateur aurait fait un define('_MYSQL_NOPLANES',false); rien ne change.

Si on a une base mysql en utf8 normal, alors les emoji longs sont remplacés par une entite html en base. C'est moche au retour sur le form de config, mais au moins c'est fonctionnel et on ne perds pas le reste de la config...

Ce patch ne traite pas le problème de fond, mais peut être reporté sur les versions stables sans risque

Rapports de requête de fusion