Magic Quotes, comment les gérez vous ?

Mammouth du PHP | 965 Messages

22 oct. 2007, 12:39

Bonjour,

Je suis confronté a un probleme de compatibilitée entre differents server PHP, qui sont sur 4 ou 5, mon code doit donc s'adapter en fonction de la version. Après avoir rencontrrer le problème et poster sur developpez.net on me donne cette FAQ :

http://php.developpez.com/faq/?page=mysql#mysql-escape

Sur cette fonction magic_quote, il vas tester une variable et retourner ou non les stripslashes ou mysql_real_escape_string.

Mais il faut passer chaque variable dans cette fonction et j'aimerais que cela se fasse automatiquement a chaque requete qui est fait. Car sur un code long, utiliser ou non les magic quote deviens vite ennuyeux.

Comment gérez vous les magic quote avec php4 et 5 ?

ViPHP
AB
ViPHP | 5818 Messages

22 oct. 2007, 19:31

Bonjour,

Ben moi c'est du grand classique, exactement comme dans le lien que tu as indiqué.

Mammouth du PHP | 2937 Messages

23 oct. 2007, 01:01

En PHP 5, si l'on utilise PDO, les requêtes préparées font des merveilles.

Toujours est-il qu'il est recommandé de désactiver les "guillemets magiques" (d'autant qu'ils disparaîtront en PHP 6). À défaut de pouvoir modifier, si besoin est, la configuration du serveur, le manuel de PHP propose une solution permettant d'émuler leur désactivation à l'exécution des scripts.

Mammouth du PHP | 965 Messages

23 oct. 2007, 14:42

En PHP 5, si l'on utilise PDO, les requêtes préparées font des merveilles.

Toujours est-il qu'il est recommandé de désactiver les "guillemets magiques" (d'autant qu'ils disparaîtront en PHP 6). À défaut de pouvoir modifier, si besoin est, la configuration du serveur, le manuel de PHP propose une solution permettant d'émuler leur désactivation à l'exécution des scripts.
Merci pour ta réponse je suis aller voir sur le site php.net mais ils semblent que certains utilisateurs amériquains rencontrent des problème avec cette utilisation concernant certaines chaines de caracteres qui ne seraient pas prises en compte.

Donc je pense utiliser la fonction Quote_smart ce qui ne m'arrange pas, pour traiter toute les données.