Cleden Posté 6 Avril 2005 Posté 6 Avril 2005 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 apostropheecho "<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 apostropheecho "<input name='nom' size='40' value='".$nom."'>"; Avec ces deuxième code, ce sont les espaces qui tronquent ma variable. Si quelqu'un avait un tuyau, j'imagine que ce doit être un problème récurrent. Loïc.
Dan Posté 6 Avril 2005 Posté 6 Avril 2005 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
Cleden Posté 6 Avril 2005 Auteur Posté 6 Avril 2005 Déjà ce que tu appelles un "antislash" n'en est pas un... l'antislash est dans l'autre sens : \ Oups 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) Loïc.
Dan Posté 6 Avril 2005 Posté 6 Avril 2005 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 >
Cleden Posté 6 Avril 2005 Auteur Posté 6 Avril 2005 C'est plus compliqué que je le croyais mais ça marche et c'est le principal. Merci à toi, Loïc.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant