OVH Community, votre nouvel espace communautaire.

CakePHP / Achievo : pb d'accent depuis passage PHP 5_4


b.b.b
07/10/2015, 10h04
Merci cavapulser, mais ce n'est pas à l'affichage que ça plante, mais carrément lors de la compilation PHP.

Du coup, j'ai trouvé une solution borderline mais qui fonctionne :

J'ai replacé :
htmlspecialchars($text);
par
htmlspecialchars($text, ENT_COMPAT | ENT_HTML401, "ISO-8859-1");

Car dès PHP >= 5_4, la fonction htmlspecialchar() ne prends plus en paramètre par défaut la valeur de php.ini "default_charset", mais directement UTF8, si on ne lui précise rien.

Merci quand même à ceux qui ont essayé de m'aider.

cavapulser
05/10/2015, 17h24
Pas sous CakePHP, mais pour des pages statiques, avec un ancien script de formulaire, passage de en , et ça roule en PHP 5.6 pour les caractères accentués

b.b.b
05/10/2015, 16h04
J'ai cherché encore, mais pas pu résoudre mon problème.

Quelqu'un a été confronté au même problème lors de la bascule de son site sur PHP >= 5_4?

Merci d'avance

b.b.b
01/10/2015, 15h59
up?

b.b.b
29/09/2015, 12h00
Hell chmod777,

Merci pour ton retour.
Cela a juste carrément mangé tous les accents à l'affichage de la page HTML.

Je pense que c'est surtout au niveau des fonction de type input($xxx) de CakePHP qu'il faut que je modifie qqc, car c'est à ce moment là que l'encodage empêche l'affichage des données accentuées.

Merci quand même

chmod777
29/09/2015, 11h23
Bonjour,

Peut-être une simple erreur dans le ini_set :
essayer avec ISO-8859-1 au lieu de ISO8859-1

b.b.b
29/09/2015, 11h21
Hello les piliers,

Je rencontre des problèmes depuis le passage de certains sites sur PHP 5_4 (ou 5_5 ou 5_6).
J'ai passé par défaut tous les sites en 5_6 pour être tranquille, et j'ai spécifié pour la plupart de fonctionner en iso
Code PHP:
ini_set("default_charset""ISO8859-1"); 
Pour mes sites cakePHP et Achievo, qui sont des frameworks UTF-8, j'ai testé plusieurs choses, mais rien ne fonctionne dans un cas particulier :

Certaines données de mon formulaire s'affichent (exemple tous les champs textes s'affichent), par contre pour la liste déroulante, seules les données sans accent s'affiche, les autres non (j'ai regardé dans le code source de la page, et c'est vide aussi).

De quoi cela peut provenir ? Je sais qu epar défaut 5_4 est en UTF-8, mais seulement pour certaines fonctions (htmlentities, etc.).
Est-ce un problème de Mysql ou de PHP ? (les tables sont en InnoDB latin1_swedish_ci).
Pour résumer :
PHP 5_3 : tout est ok au niveau des accents
PHP >= 5_4 : seulement certains champs avec des données accentuées s'affichent mais pas les autres..

Quelqu'un peut m'aider?

Merci d'avance

b.b.b