Page 1 sur 1

Probléme avec les guillemets !

Posté : 12 juil. 2007, 18:16
par angebleu17
Bonjour,

J'ai un petit probléme avec les guillemets. J'aimerais afficher la chaine avec les " " .

Quand je fait ceci :
 echo  stripslashes($_POST['titre'][0]);
Cela m'affiche bien le titre correctement (avec les ")

Mais quand je veux l'afficher dans un input, ça ne marche pas, ça affiche des \ au lieu du " et aprés il n'affiche plus le reste du titre !

voici le code :

Code : Tout sélectionner

<input name="titre[]" value="<? echo stripslashes($_POST['titre'][0]) ?>" size="25"/>

Comment faire pour afficher correctement le texte dans le input ?

Merci d'avance pour vos réponses.

Posté : 12 juil. 2007, 18:48
par Sékiltoyai
Donne le code html résultant, ce sera ça de gagné :)

Re: Probléme avec les guillemets !

Posté : 12 juil. 2007, 18:50
par @rthur
Bonjour,

Tu as essayé sans le stripslashes?

Code : Tout sélectionner

<input name="titre[]" value="<? echo $_POST['titre'][0] ?>" size="25"/>

Posté : 12 juil. 2007, 18:52
par Hubert Roksor
Il ne faut pas oublier htmlspecialchars() aussi, histoire d'échapper les-dits guillemets.

Posté : 12 juil. 2007, 19:35
par billdoor
T'as essayé ça:
<input name="titre[]" value="<? print "\"stripslashes($_POST['titre'][0])\""; ?>" size="25"/>
?

EDIT: ça marche mieux comme ça?

Posté : 12 juil. 2007, 19:41
par Hubert Roksor
Err... à la rigueur j'ai une meilleur question, est-ce quoi toi tu l'as essayé avant de poster ? :-k

Posté : 13 juil. 2007, 09:28
par angebleu17
J'ai essayé ça :

Code : Tout sélectionner

<input name="titre[]" value="<? echo $_POST['titre'][0] ?>" size="25"/>
Mais ça met un \ au lieu d'un guillement et le reste du titre ne s'affiche pas !

En essayant ça :

Code : Tout sélectionner

<input name="titre[]" value="<? print "\"stripslashes($_POST['titre'][0])\""; ?>" size="25"/>
Ca me met cette erreur : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING.

Avec :

Code : Tout sélectionner

echo htmlspecialchars ($_POST['titre'][0])
Ca va un peu mieux, ça met des \ avec les ".

C'est bon j'ai trouvé je pense, j'a essayé :

Code : Tout sélectionner

echo stripslashes(htmlspecialchars($_POST['titre'][0]))
Ca m'affiche correctement le titre...

Je pense qu'il n'y a pas plus simple ou plus cour ?!

Posté : 13 juil. 2007, 10:43
par Ryle
Petit rappel : Pour échapper un caractère en PHP ou Javascript (par exemple une guillemets à l'intérieur d'une chaine délimitée par des guillemets), on place un antislash devant.
Pour échapper un caractère en HTML, comme le signal Hubert, on utilise les entités html (> , &quote; etc.). C'est notamment à ça que servent les fonctions htmlspecialchars() ou htmlentities()

Le stripslashes() n'a quant à lui rien à voir, il permet seulement de supprimer les antislash ajoutés par addslashes() ou par les magic quotes et réafficher la valeur telle qu'elle a été saisie :) Il n'y a donc pas plus simple pour ce que tu veux faire. (encore que personnellement je le ferais dans l'autre sens : la suppression des \ avant la transformation en entités html, bien qu'au final ça change pas grand chose :))

Posté : 13 juil. 2007, 10:45
par angebleu17
ok merci :wink: