Project

General

Profile

Anomalie #3115

Bug sous PHP 5.4 car le charset n'est pas passé à htmlspecialchars (site en iso-8859-1)

Added by - Equipement almost 6 years ago. Updated almost 6 years ago.

Status:
Fermé
Priority:
Haut
Assignee:
-
Category:
-
Target version:
Start date:
12/12/2013
Due date:
% Done:

0%

Resolution:
Navigateur:

Description

Bonjour,

J'ai effectué le test suivant sur un site en iso-8859-1 sous PHP 5.4.22 avec les 4 versions de SPIP suivantes : 3.0.14, 3.0.13, 2.1.24, 2.1.23.
J'ai créé un article dont le texte contient uniquement : l'Évasion (avec la majuscule accentuée).
Le texte "l'Évasion" s'affiche dans exec=article&id_article=... mais ensuite, il ne s'affiche plus dans exec=article_edit&id_article=...

Ce bug provient d'une évolution de la fonction htmlspecialchars en PHP 5.4 (cf. http://php.net/htmlspecialchars) : "Encodage à utiliser lors de la conversion. Si omis, la valeur par défaut de cet argument sera ISO-8859-1 dans les versions antérieures à PHP 5.4.0, et UTF-8 à partir de la version PHP 5.4.0."

Pour résoudre le problème sous SPIP 3.0.14, une solution consiste à remplacer dans la fonction protege_champ de ecrire/balise/formulaire_.php :

$texte = htmlspecialchars($texte,ENT_QUOTES);

par :
$texte = htmlspecialchars($texte,ENT_QUOTES,$GLOBALS['meta']['charset']);

Pour résoudre le problème sous SPIP 2.1.24, une solution consiste à remplacer dans la fonction entites_html de ecrire/inc/filtres.php :

$texte = htmlspecialchars(echappe_retour(echappe_html($texte,'',true),'','proteger_amp'));

par :
$texte = htmlspecialchars(echappe_retour(echappe_html($texte,'',true),'','proteger_amp'), ENT_QUOTES,$GLOBALS['meta']['charset']);

Remarques :
- cette évolution de htmlspecialchars concerne également la fonction htmlentities de PHP.
- il serait souhaitable de vérifier toutes les utilisations de ces 2 fonctions de PHP dans SPIP.

Cordialement
Equipement

History

#1 Updated by b b almost 6 years ago

Ton problème semble lié à ce sujet sur spip-dev :

http://archives.rezo.net/archives/spip-dev.mbox/YLVLEP2EGK26XHSZJHN3GI744NMTOE2H/

Un patch y est proposé et est en cours de test pour intégration.

#2 Updated by b b almost 6 years ago

  • Status changed from Nouveau to En cours

#3 Updated by Ben . almost 6 years ago

salut equipement, tu as le temps de tester ?

#4 Updated by - Equipement almost 6 years ago

Bonjour,
J'ai testé la solution que j'ai mentionnée.
Quelle autre solution faut-il tester ?

#5 Updated by b b almost 6 years ago

Quelle autre solution faut-il tester ?

Celle qui est proposée dans le lien que je cite dans mon premier commentaire :p

#6 Updated by b b almost 6 years ago

Le correctif a été intégré dans la branche stable cf :

http://archives.rezo.net/archives/spip-dev.mbox/AULQPMBIYUTS6VB2D54FWXMBSJW2B2W4/

@Equipement peutx-tu confirmer que ça règle le problème histoire qu'on ferme ce ticket ?

#7 Updated by - Equipement almost 6 years ago

Bonjour,
Désolé, mais je suis très chargé en ce moment.

#8 Updated by denisb - almost 6 years ago

  • Status changed from En cours to Fermé

corrigé par r21111, r21113 and co.

Also available in: Atom PDF