Page 1 sur 1

cote et apostrophe dans PHP

Posté : 21 févr. 2010, 13:30
par christele
Bonjour,

j'ais un probléme une variable venant de Mysql et récupérée avec
 
<?PHP
while ($row=mysql_fetch_array($result)) 
         {
          $designation= stripslashes($row['designation']);
         }

Je vous fait grace du reste code

derriére cette récupération je fais un FORM pour modifier cette donnée.

 
echo "<br />VOUS MODIFIEZ  ".$designation." ";
echo "<br />texte<input  type='text' size='30' name='designation' value='".$designation."'>";


Je vous fait grace du reste code

alors mystére j'ais

VOUS MODIFIEZ l'age de pierre a l'aire des...
texte l


en fait si j'inverse

echo '<br />texte<input  type="text" size="30" name="designation" value="'.$designation.'">';
alors ça marche mais le probléme apparait lorsque j'écris

un homme disait "xxxxxxx xxxxx"
Alors comment régler cela ?
car dans le cas ou j'ais les deux comme ceci:

l'art de dire "bien vu" est etc..

Merci a ceux qui auraient une idée

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 13:45
par Calimero
Bonjour,

Au niveau de ton html, je te conseille de choisir un délimiteur d'attribut, et de t'y tenir pour toutes tes créations web. Je te conseille les doubles quotes " " (ta solution #2), notamment car elles sont généralement moins fréquentes en bdd que les apostrophes.

Au niveau php, remplace les quotes dans les chaînes issues de ta base de données par les entités html équivalentes :
$chaine = 'une chaine qu\'on a voulu piéger "exprès".';
$chaine=str_replace('"','"',$chaine);
Et voilà le résultat :
<input name="test" id="test" type="text" value="<?php echo $chaine; ?>" />
<!-- ce qui donne en source html : --> 
<input name="test" id="test" type="text" value="une chaine qu'on a voulu piéger "exprès"." />

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 14:23
par christele
Mille mercis !
C'est enfantin et efficace :wink:
Même le dimanche les esprits sont au top :)

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 16:24
par Ganesh
Au niveau php, remplace les quotes dans les chaînes issues de ta base de données par les entités html équivalentes :
$chaine = 'une chaine qu\'on a voulu piéger "exprès".';
$chaine=str_replace('"','"',$chaine);
Bonjour,

Pourquoi ne pas utiliser simplement htmlspecialchars()?

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 18:22
par christele
Bonjour,
Pourquoi ne pas utiliser simplement htmlspecialchars()?
Pour ne surtout pas modifier ce que je veux conserver dans mon terxte !

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 19:55
par Ganesh
Comme quoi par exemple?

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 19:58
par Calimero
Bonjour,

Pourquoi ne pas utiliser simplement htmlspecialchars()?
En effet, ici c'est encore mieux ;) htmlspecialchars() fait un peu plus de travail que le simple str_replace que j'ai donné (et anticipe sûrement le prochain problème que rencontrera christele).

C'est idéal pour écrire dans un attribut html, bien qu'un peu moins pédagogique je trouve (le côté "boîte noire" des fonctions prêtes à l'emploi, d'un côté c'est bien car c'est une solution complète et opérationnelle, mais d'un autre côté pas terrible pour comprendre quand on débute).

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 20:04
par Ganesh
D'accord, je saisis l'intérêt.
J'avais l'impression de passer à quelque chose de trivial, d'où ma question.
Merci Calimero.

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 20:25
par christele
En effet, ici c'est encore mieux ;) htmlspecialchars() fait un peu plus de travail que le simple str_replace que j'ai donné (et anticipe sûrement le prochain problème que rencontrera christele).
Non pas du tout, :non:
j'ais du métier comme on dit ! mais j'ais besoins de ne pas utiliser une fonction pareille qui fait tout, "tout bétement" ce n'est pas mon besoins. ni ce jour, ni demain.
Ta réponse me convient pleinement et je t'en remercies encore. :D
A++ sur le forum :?

Re: cote et apostrophe dans PHP

Posté : 21 févr. 2010, 23:06
par Calimero
j'ais du métier comme on dit ! mais j'ais besoins de ne pas utiliser une fonction pareille qui fait tout, "tout bétement" ce n'est pas mon besoins. ni ce jour, ni demain.
Ok bah tant mieux alors. Et pour le "quand on débute", désolé, ton pseudo seul ne m'évoquait rien mais je viens seulement de me rappeler ta signature #-o :wink:

@+