Je travaille sur une grosse application de gestion écrite en PHP 5.2.5 & MySql 5.0.38.
J'utilise des objets.
magic_quotes_gpc est à OFF
magic_quotes_runtime est à OFF
magic_quotes_sybase est à OFF
Et pour compliquer le tout le problème est dans un script AJAX (php appelé par du JS), j'utilise FireBug pour débugger mon application.
D'un côté j'obtient un truc parfaitement fonctionnel, exemple avant le mysql_query :
Code : Tout sélectionner
INSERT INTO utilisateur VALUES('zzzzzzzzzzzzz','f72a9822b90d343cf25d93128bb445e7','AMELIE L\'ACCENT','mais\'grumpgh','Mlle','centre',94);D'un autre côté, pour une table différente, j'ai (toujours avant le mysql_query) :
Code : Tout sélectionner
INSERT INTO communication VALUES('','nicole','nicole','2007-12-18 16:40:12','mail','Annulation d\'une affiliation','encore un acc\'ent');Les tables sont sur la même base, avec le même type de données (varchar(250) ou text le tout en latin1_swedish_ci).
Je ne comprend pas d'où vient le problème!
La seule différence entre ces deux exemples est la provenance des données :
-pour la table utilisateur les données viennent d'un formulaire utilisateur (input) auquels sont fait des addslashes
-pour la table communication les données viennent de la base de données elle-même, il n'y a pas de stripslashes de fait lors de la récupération.
Avant le echo, un addslashes est fait ; cela me semble logique et le echo de la requête le confirme, sinon il y'a une erreur mysql....
Rmq: si je copie la requête affiché depuis firebug dans phpmyadmin, elle marche !?
Est-ce un bug de FireBug qui ne m'afficherait pas un backslash présent ? Je ne penses vraiment pas... car de toute façon sans addslashes la requête échoue.
Le fait de faire un stripslashes lors de la récupération des données ne change rien au schmilblick, je viens de tester rapidement.
Quelqu'un peut-il m'éclairer ?