par
AB » 13 avr. 2012, 03:48
Bon, je ne comprends pas bien pourquoi la fonction ci-dessus n'est pas une bonne méthode mais j'ai résolu la question d'une manière plus simple. J'ai réussi à désactiver les magic_quotes en insérant ce code dans le fichier .htaccess
Bah je croyais avoir été assez clair dans mon explication.
Dans ta fonction, si get_magic_quotes_gpc()==1 on retourne la chaine sans traitement alors qu'on t'a dis plusieurs fois qu'il fallait appliquer mysql_real_escape_string sur les variables pour les insérer dans une requête. Et comme magic_quotes_gpc - qui est un addslashe automatique sur les variables gpc (soit les variables
get,
post et
cookie) - fait double emploi avec "mysql_real_escape_string", on supprime son effet avec un stripslahes et ensuite on applique "mysql_real_escape_string" (toujours si magic_quotes_gpc est activé).
Enfin bon puisque tu as désactivé "magic_quotes_gpc" via le .htaccess tu n'auras plus de problème mais si tu voulais faire un code portable et compatible avec d'anciennes configurations (qui vont durer encore certainement plusieurs années surtout pour les hébergements gratuits des fournisseurs d'accès), la fonction que tu as donnée n'est pas bonne puisqu'elle prive de l'utilisation de mysql_real_escape_string si magic_quotes_gpc est activé (je sais plus comment te le dire).
Code : Tout sélectionner
php_value magic_quotes 0
php_flag magic_quotes off
php_value magic_quotes_gpc 0
php_flag magic_quotes_gpc off
Oui c'est la syntaxe habituelle classique. Cela dit pour des serveurs mutualisés cela peut varier suivant les hébergeurs, par exemple chez ovh il faudrait écrire "SetEnv MAGIC_QUOTES 0". Pour dire qu'il vaut mieux se renseigner auprès de son hébergeur si ces lignes ne fonctionnaient pas (et parfois le .htaccess n'est même pas pris en compte).
[quote="weri"]Bon, je ne comprends pas bien pourquoi la fonction ci-dessus n'est pas une bonne méthode mais j'ai résolu la question d'une manière plus simple. J'ai réussi à désactiver les magic_quotes en insérant ce code dans le fichier .htaccess[/quote]
Bah je croyais avoir été assez clair dans mon explication.
Dans ta fonction, si get_magic_quotes_gpc()==1 on retourne la chaine sans traitement alors qu'on t'a dis plusieurs fois qu'il fallait appliquer mysql_real_escape_string sur les variables pour les insérer dans une requête. Et comme magic_quotes_gpc - qui est un addslashe automatique sur les variables gpc (soit les variables [b]g[/b]et, [b]p[/b]ost et [b]c[/b]ookie) - fait double emploi avec "mysql_real_escape_string", on supprime son effet avec un stripslahes et ensuite on applique "mysql_real_escape_string" (toujours si magic_quotes_gpc est activé).
Enfin bon puisque tu as désactivé "magic_quotes_gpc" via le .htaccess tu n'auras plus de problème mais si tu voulais faire un code portable et compatible avec d'anciennes configurations (qui vont durer encore certainement plusieurs années surtout pour les hébergements gratuits des fournisseurs d'accès), la fonction que tu as donnée n'est pas bonne puisqu'elle prive de l'utilisation de mysql_real_escape_string si magic_quotes_gpc est activé (je sais plus comment te le dire).
[quote="weri"]
[code]php_value magic_quotes 0
php_flag magic_quotes off
php_value magic_quotes_gpc 0
php_flag magic_quotes_gpc off[/code]
[/quote]
Oui c'est la syntaxe habituelle classique. Cela dit pour des serveurs mutualisés cela peut varier suivant les hébergeurs, par exemple chez ovh il faudrait écrire "SetEnv MAGIC_QUOTES 0". Pour dire qu'il vaut mieux se renseigner auprès de son hébergeur si ces lignes ne fonctionnaient pas (et parfois le .htaccess n'est même pas pris en compte).