Aller au contenu

Variable contenant apostrophe ou espace


Sujets conseillés

Posté

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.

Posté

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

Posté
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.

Posté

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

Posté

C'est plus compliqué que je le croyais mais ça marche et c'est le principal.

Merci à toi,

Loïc.

Veuillez vous connecter pour commenter

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



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