Htmlentities efface ma chaine

mariostar27 Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   -  
 joseph -
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
A voir également:

3 réponses

mariostar27 Messages postés 391 Date d'inscription   Statut Membre Dernière intervention   26
 
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
joseph
 
$html = htmlentities($rows[$i][$j], ENT_QUOTES, "ISO-8859-15");
0
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   26
 
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