OVH Community, votre nouvel espace communautaire.

Upgrade PHP 4xx vers 5.5, caractères s'affichent étrangement


chmod777
11/09/2015, 00h19
Citation Envoyé par Denis83
J'avais déjà la chose dans un htaccess mais cela ne change rien...
Je parlais bien sûr de le mettre dans un fichier php, ce qui n'est pas la même chose.

html_entity_decode() :
>= 5.6.0 La valeur par défaut pour le paramètre encoding a été modifiée pour être la valeur de l'option de configuration default_charset.
>= 5.4.0 L'encodage par défaut a changé de ISO-8859-1 à UTF-8.

Nowwhat
10/09/2015, 23h51
Je vous conseille quand même de visiter php.net - la transition de PHP 4 vers 5 est extrêmement bien détaillé depuis des années.
PHP est en évolution permanente, la version "4" est mort depuis des années - beaucoup a changé depuis.Bientôt on quitte même la version "5".

Simplement enlever "html_entity_decode()" pourrait être une solution, mais hélas, ce n'est pas si simple que ça.
Au pire, ça fonctionne, mais vous avez introduit un scare faille dans vos scripts.

Denis83
10/09/2015, 23h39
Citation Envoyé par chmod777
Vous devriez lire les guides de transition sur le site de PHP car il est possible qu'il y ait d'autres problèmes moins visibles que celui-là (par exemple; j'espère que vos requêtes SQL utilisent bien au moins mysql_real_escape_string et que vous ne faisiez donc pas confiance à magic_quotes, supprimée depuis).
Oui, il faut protéger les $_POST avec mysql_real_escape_string pour éviter les injection de codes malvaillant. Cela peut être fait au niveau du fichier de connexion à la base, mais bon cela n'a aucun lien avec mon problème

Citation Envoyé par chmod777
Pour résoudre le problème actuel en tout cas, placer :
ini_set( 'default_charset', 'iso-8859-1' );
en première ligne des fichiers (ou du fichier qui contient le header) devrait faire le job.
J'avais déjà la chose dans un htaccess mais cela ne change rien...

Mais en cherchant j'ai trouvé la solution au problème je vous la propose ici :
En fait je me suis rendu compte que j'utilisais la fonction html_entity_decode() et j'ai tout simplement supprimé cette fonction.
Je ne sais pas si cela aidera d'autres ?

Bonne continuation

chmod777
10/09/2015, 18h19
Bonjour,

Vous devriez lire les guides de transition sur le site de PHP car il est possible qu'il y ait d'autres problèmes moins visibles que celui-là (par exemple; j'espère que vos requêtes SQL utilisent bien au moins mysql_real_escape_string et que vous ne faisiez donc pas confiance à magic_quotes, supprimée depuis).

Pour résoudre le problème actuel en tout cas, placer :
ini_set( 'default_charset', 'iso-8859-1' );
en première ligne des fichiers (ou du fichier qui contient le header) devrait faire le job.

Denis83
10/09/2015, 17h16
Bonjour,

J'ai un site en PHP4.xx que je veux faire passer en PHP 5.5, mais je rencontre un problème, quand je mets en place le fichier .ovhconfig les caractères accentués s'affichent étrangement.
Les textes arrivent d'une base MySql...

Voici le code du .ovhconfig
Code:
app.engine=php
app.engine.version=5.5
http.firewall=none
environment=production
Avec 5.4 c'est pareil !

Le site est en

et