Hello, j'ai un petit soucis auquel je ne trouve réponse :

le site est entièrement en utf8, ainsi que la base :

je recupère une valeur de la base ($data), :
un echo $data, donne : test"exemple (le guillemet s'affiche)
je met cette valeur dans un input :
<input name="nom" type="text" value="<?=$data)?>" me donne : test
ce qui est après est tronqué

je peux résoudre ca avec un htmlspecialchars, mais j'aimerais savoir si ce comportement est normal, surtout que dans la même page, j'ai des textarea gérer par tiny_mce, et là tout est ok.


Si qq à une réponse, d'avance merci
Modifié par badraf (27 Oct 2010 - 22:54)
badraf a écrit :

<input name="nom" type="text" value="<?=$data)?>" me donne : test
ce qui est après est tronqué


Pas exactement. En fait le code source généré de ta page est :
<input name="nom" type="text" value="test"exemple"/>

Ce qui casse bien sûr ton code. Il faut échapper ces données là.
badraf a écrit :
j'aimerais savoir si ce comportement est normal

Oui, c'est normal, comme l'explique Libratoi.
La solution :
<input name="nom" type="text" value="<?php echo htmlspecialchars ($data);?>" />

Grâce à la fonction htmlspecialchars ().

Soit dit en passant, pour garantir la portabilité de ton code PHP, évite les notations raccourcies <? et <?=.
Modifié par Victor BRITO (28 Oct 2010 - 16:32)
je savais pas pour la portabilité, je trouve cette notation très pratique en lecture, on voit vite les données....

tous mes sites sont chez le même hebergeur (OVH), si je dois migrer j'aurais plus peur de la config apache que de mon code ^^