Caractère "\" intempestif
RésolunEm3sis Messages postés 722 Statut Membre -
J'ai un soucis. Pour ceux qui suivent mes (trop nombreuses) questions, je suis en train de créer un site qui permet de créer des pages php avec un contenu rentré dans un formulaire.
Soucis : quand je tape un caractère spécial dans le formulaire (" par exemple), il est échappe automatiquement. Mais ça ne me va pas, je ne sais pas pourquoi ça fait ça.
Bref, eu final, si je tape "test", j'obtiens \"test\", et si j'édite, \\\"test\\\" et ainsi de suite...
Pourquoi ça fait ça ? Comment contrer ça ?
Merci !
Configuration: Windows Vista Firefox 3.0.11
30 réponses
- 1
- 2
Le problème central est l’échappement automatique des guillemets lors de la saisie dans un formulaire PHP, probablement causé par l’option magic_quotes_gpc activée dans le php.ini. Il est fortement conseillé de la désactiver; cette option est notamment absente dans les versions PHP récentes et peut provoquer un double-échappement lors de l’édition, et elle n’existe plus en PHP 6. Pour corriger, modifier le php.ini en mettant magic_quotes_gpc Off et, le cas échéant, magic_quotes_runtime Off, puis redémarrer le serveur pour que les changements prennent effet. En cas de doute, vérifier quel php.ini est utilisé par le serveur et s’assurer que les changements sont bien pris en compte après redémarrage du service.
-
Salut
L'option magic quotes du php.ini est surement activée. Il est fortement conseillé si c'est le cas que tu le desactive ( d'ailleurs elle n'existe plus en PHP 6 cette option ) -
salut,
en nettoyant la chaine avec la fonction stripslashes() avant de l'afficher.
<edit>
mais Mimiste a raison, vaux mieux soigner la cause du mal que les symptômes…
-:oD
</edit> -
Voila donc le soucis. Comment faire pour modifier cette option ?
Merci !
Edit :magic_quotes_gpc On On magic_quotes_runtime Off Off
La voila l'option à mettre à "off", c'est bien ça ?
Merci ! -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Ben elle doit deja y etre dans le php.ini
tu passe la ligne
magic_quotes_gpc = On
a
magic_quotes_gpc = Off -
En fait, ma question, c'est comment faire ça ? Il y a une fonction ?
Merci ! -
ben non, ta un fichier de configuration qui s'appel php.ini
Tu l'ouvre avec le bloc note, tu trouve la ligne que je t'ai dis et tu enregistre et tu relance ton serveur ! -
Voila, mais où se trouve ce fichier ? le phpinfo() m'indique
Configuration File (php.ini) Path /conf/php.ini
mais où est ce dossier ?
Merci ! -
ben dans un des repertoire ou tu a du installer apache, je sais pas, fait une recherche sur ton pc
-
je n'ai pas installé apache (ou alors à l'insu de mon plein gré...)
-
Ben tu dois utiliser wamp non ? alors oui apache a été installé a l'insu de ton plein gré ^^
Si c'est le cas le php.ini doit etre dans un des repertoire de wamp
-
wamp ne me dit rien non plus... Qu'est ce que tous ces noms ?(oui, je passe pour un crétin...)
Merci ! -
hmm, comment tu utilise php ? direct en ligne sur ton hebergeur ?
-
tu utilise peut être la function stripslash() ou un truque dans le genre. je ne suis pas sur mais regarde.
ou peut être htmlspecialchars(). regarde tout de même on ne sait jamais. -
-
-
j'ai l'impression que tu n'as pas trouvé ton php.ini
tu peux utiliser ini_set() pour modifier les information -
pour trouver ton php.ini,
ouvre un terminal et tape "locate php.ini" -
Désolé, je n'ai pas de terminal, je tourne sous vista (et cette invite de commande n'est pas reconnue).
Par ailleurs, la recherche avec l'outils de recherche de windows n'a rien donnée...
Merci !
- 1
- 2