8795 sujets

Développement web côté serveur, CMS

Bonjour,

J'aimerai trouver de l'aide pour un petit problème...Pour afficher une variable dans une chaîne de caractère, j'utilise le code suivant:

echo "Titre <input type='text' name='titre' value='".$titre."' />";

Ce qui me donne le résultat suivant dans le code source html par exemple :
Titre <input type='text' name='titre' value='l'histoire de l'eau' />

Et donc ça ne fonctionne pas...

Mais si je mets:
echo 'Titre <input type="text" name="titre" value="'.$titre.'" />';

La ça fonctionne.

Que faire ? Smiley ohwell
Modifié par spike2 (22 Jan 2009 - 14:20)
Il faut échaper les caractères. la fonction html_entities le fait il me semble.

S'il ne s'agit que de remplacer les " ou les ' tu peux aussi utiliser
str_replace("'", "\'",$titre);
Salut,

il faut partir du code auquel tu veux parvenir. A savoir :
<input type="text" name="titre" value="l'histoire de l'eau" />
Donc le plus simple est de faire :
echo '<input type="text" name="titre" value="'.$titre.'" />';
Ce qui fonctionnera toujours si c'est toi qui est à l'origine de ce qui est écrit dans $titre puisque tu ne vas pas t'amuser à mettre des guillemets. Smiley cligne

Dans le cas d'une saisie par un visiteur il suffit donc de prévoir le cas en faisant :
echo '<input type="text" name="titre" value="'.htmlspecialchars($titre).'" />';