Htmlentities efface ma chaine

Fermé
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 - Modifié par mariostar27 le 10/08/2011 à 12:18
 joseph - 17 mai 2014 à 07:47
Bonjour,

Je développe en PHP et j'ai un problème sur une des mes fonction. voici le début de cette fonction :

echo "On insert : ".$_POST['nom']." et ".$_POST['description']."<br/>"; 

$nom = htmlentities($_POST['nom']), ENT_QUOTES, 'UTF-8'); 
$description = htmlentities($_POST['description']), ENT_QUOTES, 'UTF-8'); 

echo "On insert : ".$nom." et ".$description."<br/>"; 


en admettant que $_POST['nom'] = "allé" et $_POST['description']= "allé" j'obtiens :

On insert : allé et allé 
On insert : et  


Pourquoi la fonction htmlentities() supprime complètement mon string quand j'ai un caractère spécial ???

Je précise que sans caractère spécial, c'est correcte.

ATTENTION : si je met "allé" à la place des $_POST, le code fonctionne. j'obtiens bien allé et pas une chaine vide.

pouvez vous m'aider svp ???



gwennael

3 réponses

mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
Modifié par mariostar27 le 10/08/2011 à 13:15
Simple,

je n'avais pas précisé le charset de mon site. bref, la ligne à ajouter est :

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 


en mettant :

$nom = htmlentities($nom, ENT_QUOTES, 'UTF-8')


ma base de données enregistre le "é" en &eacute;

sans cette ligne, il suffirai de mettre :

$nom = htmlentities($nom)


gwennael
0
$html = htmlentities($rows[$i][$j], ENT_QUOTES, "ISO-8859-15");
0
Utilisateur anonyme
10 août 2011 à 13:15
Bonjour,

Je suis étonné que PHP ne vous fasse pas un message d'erreur :

remplacez ceci
$nom = htmlentities($_POST['nom']), ENT_QUOTES, 'UTF-8'); 
$description = htmlentities($_POST['description']), ENT_QUOTES, 'UTF-8'); 


par cela

$nom = htmlentities($_POST['nom'], ENT_QUOTES, 'UTF-8'); 
$description = htmlentities($_POST['description'], ENT_QUOTES, 'UTF-8'); 


Parenthèses en trop.
0
mariostar27 Messages postés 391 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 21 août 2015 26
12 août 2011 à 10:23
je ne l'ai avais pas mi. c'est parce qu'a l'intérieur j'utilisais ma fonction trim() pour supprimer les espace en début et fin de chaine. pour je les avais enlevé ici parce qu'elles étaient inutile à l'explication. et j'ai oublié d'enlever les dernière parenthèse. Sinon effectivement il y a erreur et netbeans m'aurait souligné ça en rouge...

Merci quand même
0