Version complète: sur le forum Webmaster Hub : Variable contenant apostrophe ou espace
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Cleden
Salut,

J'ai toujours une des problèmes avec l'affichage de mes variables php lorsque celles-ci contiennent des espaces ou des apostrophe. Cette fois-ci, j'aimerai faire quelques chose de propre alors je sollicite votre aide après avoir fait moultes recherches infructueuses sur Google.

Je cherche à afficher une variable dans un champ <input>
CODE
    
$nom = "bla/' bla"; /// variable avec espace et apostrophe
echo "<input name='nom' size='40' value='$nom' />";

Avec ce code, les espaces s'affichent correctement mais l'apostrophe tronque ma variable malgré l'utilisation de l'antislashe.
CODE
    
$nom = "bla/' bla"; /// variable avec espace et apostrophe
echo "<input name='nom' size='40' value='".$nom."'>";

Avec ces deuxième code, ce sont les espaces qui tronquent ma variable.

:gueule:

Si quelqu'un avait un tuyau, j'imagine que ce doit être un problème récurrent.
Loïc.
Dan
Salut Cleden,

Déjà ce que tu appelles un "antislash" n'en est pas un... l'antislash est dans l'autre sens : \

Et pour te débarrasser des quotes et autres caractères gênants, il faudrait utiliser htmlentities() ...

Donc, l'affichage se ferait comme ceci:
CODE
echo "<input name='nom' size='40' value='".htmlentities($nom)."'>";



Dan
Cleden
CITATION
Déjà ce que tu appelles un "antislash" n'en est pas un... l'antislash est dans l'autre sens : \

Oups blush.gif En fait, j'ai fait l'erreur dans le post mais celui de mon code est réellement un antislashe :-/

CITATION
Et pour te débarrasser des quotes et autres caractères gênants, il faudrait utiliser htmlentities() ...

Donc, l'affichage se ferait comme ceci:
CODE
echo "<input name='nom' size='40' value='".htmlentities($nom)."'>";

Dan
*


Arf, j'ai recopié ton code à la lettre Dan et ma variable est toujours tronquée juste après l'apostrophe. (avec ou sans l'antishlashe) :gueule:

Loïc.
Dan
Un petit oubli de ma part wink.gif
J'ai oublié le paramètre ENT_QUOTES

CODE
$nom="C'est une <très> belle histoire!";
print "<form><input name='nom' size='40' value='".htmlspecialchars($nom,ENT_QUOTES)."'></form>";


<edit: j'ai ajouté le <très> dans la chaîne $nom wink.gif >
Cleden
C'est plus compliqué que je le croyais mais ça marche et c'est le principal.

Merci à toi,
Loïc.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.