[RESOLU] PHP 5.6 et htmlentities

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] PHP 5.6 et htmlentities

Re: PHP 5.6 et htmlentities

par AmateurJava » 10 nov. 2014, 16:08

Cela ne marche pas... en mettant AddDefaultCharset UTF-8 dans charset.conf (dossier apache)
Par contre, en mettant mysql_query("SET NAMES 'utf8'");dans mon fichier de connection à la BD en plus du defaultCharset en UTF-8, je règle le problème à l'affichage et je n'ai pas de problèmes majeurs à l'enregistrement.

Re: PHP 5.6 et htmlentities

par ynx » 10 nov. 2014, 15:40

En php 5.4 le 3e paramètre a pour valeur par défaut UTF-8.
Si tu configure le default_charset avec cette valeur tu devrais retrouver le même comportement qu'avant la migration.

Je cherche a modifier un paramètre de la configuration du serveur
Il ne semble pas qu'il existe d'autres paramètres pour modifier le comportement de htmlentities.
Sinon prévois de corriger tes appels à utf8_encode/decode.

Re: PHP 5.6 et htmlentities

par AmateurJava » 10 nov. 2014, 15:29

merci de votre réponse,

j'ai testé de modifier le charset par défaut (dans php.ini). Le problème c'est que ça modifie l'affichage du site dans lequel j'ai des utf8_decode ou encode. Donc je résoud un problème et j'en crée d'autres...
Donc cette réponse ne me convient pas.

Je cherche a modifier un paramètre de la configuration du serveur pour que mes htmlentities refonctionnent sans avoir à modifier mon code...

Re: PHP 5.6 et htmlentities

par ynx » 10 nov. 2014, 15:14

Salut,

Concernant le 3e paramètre de htmlentities : En PHP 5.6.0 et suivants, l'option de configuration default_charset sera utilisée comme valeur par défaut.
Tu peux donc modifier le charset par défaut à utiliser par cette fonction.

Le 2e paramètre sera toujours ENT_COMPAT | ENT_HTML401 par défaut.

Plus d'info : http://php.net/manual/fr/function.htmlentities.php

Bonne journée

PHP 5.6 et htmlentities

par AmateurJava » 10 nov. 2014, 13:14

Bonjour,

après une mise à jour de la version de PHP de mon serveur (de 5.4 à 5.6), j'ai la fonction htmlentites qui ne fonctionne plus comme je le désirerais :

Avant d'afficher le résultat d'un requête dans un champs type input, je récupérais une valeur ($valeur) de ma bd mysql (UTF8) et faisait $affiche=htmlentites($valeur), puis <input type="text" ...value='$affiche'...>
Le champ était remplis que $affiche comprenne des accents ou apostrophes.

Depuis la mise a jour, $affiche ne s'affiche que si elle ne contient pas d'accent ou d'apostrophe.

Je sais que maintenant la syntaxe correcte est htmlentites($valeur, , ENT_QUOTES, "ISO-8859-1");

Seulement, j'ai des anciennes applications que je ne souhaiterais pas modifier pour l'instant.... donc avez vous une astuce de paramétrage du serveur pour éviter de tout modifier pour l'instant ?

Apache 2.4.6
php 5.6
mysql 5.5.37