Malgré le code

if(isset($_POST['nom'])) $nom= utf8_decode($_POST['nom']); else $nom="inconnu";

le caractère & ne s'enregistre pas dans ma base mysql.
En plus, il supprime tout ce qui vient après &
Comment faire ?
Merci de votre aide Smiley smile
Modérateur
Bonjour Fredericmarcel,

Je pense que tu pourrais convertir tes entrées en entités html grâce à htmlentities().

" htmlentities — Convertit tous les caractères éligibles en entités HTML "

Ainsi le 'et commercial' serait convertie en '&'. Par contre n'oublie pas d'utiliser la fonction inverse lorsque tu rapatries tes données depuis ta base.


Dans l'éventualité où cette fonction te poserais problème à cause du fait qu'elle se charge aussi de remplacer d'autr s caractères en entité html, un simple str_replace() pourrait tout aussi bien résoudre ton soucis.

Tu trouveras toutes ces infos et bien plus sur php.net

Smiley smile
Greg_Lumiere a écrit :
Bonjour Fredericmarcel,

Je pense que tu pourrais convertir tes entrées en entités html grâce à htmlentities().

" htmlentities — Convertit tous les caractères éligibles en entités HTML "

Ainsi le 'et commercial' serait convertie en '&'. Par contre n'oublie pas d'utiliser la fonction inverse lorsque tu rapatries tes données depuis ta base.


Dans l'éventualité où cette fonction te poserais problème à cause du fait qu'elle se charge aussi de remplacer d'autr s caractères en entité html, un simple str_replace() pourrait tout aussi bien résoudre ton soucis.

Tu trouveras toutes ces infos et bien plus sur php.net

Smiley smile




J'ai essayé de remplacer & par &amp
"nom = nom.replace("&", "&amp");"
Mais ça n'enregistre pas dans la base. Ou plutôt, si j'entre "Dupond & Dupont", ça enregistre "Dupond".
C'est vraiment frustrant.