Les
« magicquotes » en PHP, c'est quoi et à quoi cela
sert ?
En PHP,
il est possible de définir sur le serveur PHP une méthode
« magicquotes ». Cette opération transforme
les chaînes reçues en ajoutant automatiquement un « \ » devant tous
les caractères de contrôle.
C?est
un fonctionnement permettant de rendre syntaxiquement incorrecte une requête SQL
que le moteur PHP aurait reçu. C'est donc pour des raisons de sécurité que ce
mode est actif chez la plupart des provider (c'est le cas de free par exemple).
Comment s'en rendre compte ? C'est assez simple, créez une page PHP
qui reçoit des paramètres en ligne de commande. Envoyez lui une chaîne de type
requête SQL et regardez le résultat obtenu.
Exemple
de résultats :
//Chaîne envoyée : ./mapagephp.php?REQSQL=INSERT INTO news
VALUES('','2006-04-03','Nouvel article : c'est quoi les
"« magicquotes ? "»')
//Chaîne reçue : INSERT INTO news
VALUES(\'\',\'2006-04-03\',\'Nouvel article : c'est quoi les
\" magicquotes ? \"\').
On voit
bien dans l'exemple ci-dessus que la requête reçue est inexploitable (erreur se
syntaxe).
Si lors de l'utilisation de page PHP vous ne recevez pas la chaîne
telle que vous l'avez reçue, c'est que les « magicquotes » sont
actives. Voici en exemple de code WebDev pour supprimer les
magicquotes :
//Remplacer les « \ » rajoutés par PHP
_Requete = Remplace(_Requete,"\","")