Petite question PHP sur les apostrophes...

WRInaute occasionnel
Bonjour tout le monde,

J'ai une petite question sur PHP.

alors j'ai un cas très simple d'un formulaire qui contient un champs input de type text nommé "toto".

Dans mon formulaire, je submit en tapant la chaine "Coucou c'est moi" (sans les guillemets evidemment).

dans ma page submit, je fais un

echo $_POST['toto'];

et le résultat à l'écran est : Coucou c\'est moi

Et là ma question est... Quel est le moyen d'afficher vraiment le contenu de mon champs tel qu'il devrait et non pas avec ce '\' pas beau :)

Merci d'avance.
 
WRInaute accro
Autre solution : j'hésite en ce moment, transformer les ', ", &, ... en leur équivalent en caractères HTML ", &, ...
 
WRInaute occasionnel
blman: c'est en effet une solution, mais dis toi bien que si un jour, tu dois tirer une info d'une base de données pour l'envoyer par mail (au format TXT), la galère va commencer, car c'est &quote; qui s'affichera, et pas " ;)
à noter aussi que &quote; prendra plus de place que \"
 
WRInaute accro
Le problème, ce n'est pas les autres caractères mais c'est le ". Quand on a un champ modifiable et que l'internaute a mis un " dans ce champ, on a un truc du genre :

<input ... value="exemple" suite"/>

le 'suite' ne s'affiche pas dans le champs.

Donc j'hésite encore...
 
WRInaute discret
J'aimerais bien savoir la différence entre les guillemets et apostrohes parce que tous ces cas marchent :

Code:
echo("Txt");
echo "Txt";

echo('Txt');
echo 'Txt';
echo = "Txt"
etc.

echo = "Txt" en fait j'en suis plus très sûr :D
 
WRInaute occasionnel
blman a dit:
Le problème, ce n'est pas les autres caractères mais c'est le ". Quand on a un champ modifiable et que l'internaute a mis un " dans ce champ, on a un truc du genre :

<input ... value="exemple" suite"/>

le 'suite' ne s'affiche pas dans le champs.

Donc j'hésite encore...

Justement, je suis maintenant contronté au problême...

J'ai essayé ça
echo "(...) value=".str_replace("""', "\"", stripslashes($_POST['toto']))." (...)";

mais cela ne fonctionne pas :(
Si j'ai un " dans mon toto, tout ce qui est après ce " est zappé :(
 
WRInaute accro
Donc il faut que tu transforme les " en &quot;, c'est bien mon hésitation... Ca va te prendre plus te place dans la bdd mais au final, ça marche...

Peut-être stocké les " en " dans la bdd et les retranscrire en &quot; dans le HTML, je sais pas moi. MySQL fait chier aussi à n'avoir aucune norme à ce sujet. Si la BDD était du XML, ça serait clair, il faudrait le stocker en &quot; sinon le champ serait en CDATA...

Comme tous les jeudi soir, je suis un peu bourré, je reprendrais ce fil demain, car là, c'est un peu chaud...
 
WRInaute occasionnel
Je peux pas trop faire ça... Je n'en suis pas encore à insérer les data dans la BD, là je fais de l'échange d'un formulaire à l'autre, etc...
 
WRInaute accro
CrazyCow007>
$var='toto';

echo "bonjour $var";
echo 'bonjour $var';

fais ca et tu verra la difference entre " et '

------
remplacer des caracteres dans une chaine -> str_replace()
-----
qd a passer les caracteres en html -> pas génieal, mieux vaut utiliser addslashes() et stripslashes() pour garder le format original
 
Discussions similaires
Haut