les ' se transforment en \' par la méthode POST

les ' se transforment en \' par la méthode POST - PHP - Programmation

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 ' ?

Reply

Marsh Posté le 14-09-2007 à 18:15:39   

Reply

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.


Message édité par omega2 le 14-09-2007 à 18:23:33
Reply

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 :'(

Reply

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)


Message édité par naceroth le 14-09-2007 à 18:37:26
Reply

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 ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed