Aller au contenu

Variable contenant apostrophe ou espace


Cleden

Sujets conseillés

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>

	
$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.

	
$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.

Lien vers le commentaire
Partager sur d’autres sites

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:

echo "<input name='nom' size='40' value='".htmlentities($nom)."'>";

Dan

Lien vers le commentaire
Partager sur d’autres sites

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

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

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

Donc, l'affichage se ferait comme ceci:

echo "<input name='nom' size='40' value='".htmlentities($nom)."'>";

Dan

<{POST_SNAPBACK}>

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.

Lien vers le commentaire
Partager sur d’autres sites

Un petit oubli de ma part ;)

J'ai oublié le paramètre ENT_QUOTES

$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 ;) >

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...