les ' se transforment en \' par la méthode POST - PHP - Programmation
Marsh Posté le 14-09-2007 à 18:22:22
Ca, c'est la magie de "magic_quotes_gpc". S'il est à on dans le php.ini alors t'as le \ qui se rajoute, sinon ça arrive sans modification.
Plus d'infos ici : http://fr3.php.net/manual/fr/funct [...] es-gpc.php
Utilise donc l'exemple mais en faisant l'inverse pour neutraliser l'effet de ce réglage (de toute manière ça protège très mal) et utilise plus tard les fonctions prévus pour neutraliser les caractères indésirables à chaque fois que c'est nécessaire (htmlentities, mysql_real_escape_string, ...)
PS : En php 6, "magic_quotes_gpc" disparaitra alors il est conseillé de le neutraliser dès aujourd'hui et de faire comme s'il n'existait pas.
Marsh Posté le 14-09-2007 à 18:32:00
oui, en effet, c'est activé :s
y'a pas une tite fonction qui permet de le désactiver temporairement?
j'ai pas acces aux réglages du serveur
Marsh Posté le 14-09-2007 à 18:36:46
t'as lu le lien que t'as donné omega2 ? la réponse s'y trouve... (enfin, le moyen de nettoyer la chaine)
Marsh Posté le 14-09-2007 à 18:39:54
oui, mais il est aussi écrit que ce moyen est inefficace
par contre, j'y ai vu ce moyen qui a marché a merveille:
je crée un fichier .htaccess avec la ligne
php_flag magic_quotes_gpc Off
voili, ça marche
merci omega2
Marsh Posté le 14-09-2007 à 18:15:39
Bonjour tout le monde,
voici le problème:
je veux faire une interface qui puisse permettre d'éditer facilement un fichier texte:
l'utilisateur voit donc un <textarea>, il rentre sont texte dedans, il appuie sur 'enregistrer' et ça s'enregistre dans un fichier news.txt
le problème est que pour enregistrer, lorsque j'envoie le contenu du textarea par la méthode POST à la page d'enregistrement, tous les ' se transforment en \'
Cette erreur ne se produit pas sur tous les serveurs: en local, ça marche, mais en ligne, j'ai cette erreur.
Il doit donc s'agir d'un paramétrage. le problème c'est que je peux pas paramétrer mon serveur en ligne :s
quelqu'un connaitrait-il une fonction magique pour résoudre ce problème ou dois je coder une fonction qui remplace tous les \' par des ' ?