Je poste aujourd'huit car je suis tombé sur une sbutilité que je ne
m'explique pas sur le fonctionnement de php et plus précisément sur
magic_quotes_gpc.
J'ai bricolé un script (oui je suis un bleu) qui liste le contenu d'un
dossier, répertoires par répertoires et qui enregistre le nom et le chemin
de chaque dossiers et fichiers rencontrés dans une table mysql.
Sous windows sa fonctionne (easyphp 1.8). Par contre, sous linux...(mysql
4.1.11, php 4.3.10)
Je vous passe les détails.
Au départ la ligne magic_quotes_gpc dans php.ini est à On.
La, normal, $temp0=$ListeDossiers[$tempocomptage][0] vu que
magic_quotes_gpc=On.
Et bien à chaque fois qu'un dossier contiend une quote, j'ai ce joli message
d'erreur au moment de l'écriture dans la table :
impossible d'ajouter des données à la table listedossiers : You have an
error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'lala', 'dossier
unir/a'lala', '13/08/2005 20:40:07', '13/08/2005 20:40:07', ' at line 6
Par contre, si je met magic_quotes_gpc=Off, tout fonctionne.
$temp0 = addslashes($ListeDossiers[$tempocomptage].
Ma question est donc : quelle est la difference entre magic_quotes_gpc=On
dans le php.ini et addslashes dans mon script? (je croyais, au final, que le
résultat devait être le même).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Redy
Magic_quotes_gpc vérifies le mode de fonctionnement de PHP à la réception de données via GET, POST et COOKIE (d'où le GPC ...). Et à mon avis, les variables que tu manipules ne viennent pas de ceux là ?
Si c'est vrai, l'utilisation de "get_magic_quotes_gpc()" est ici inutile.
T'aurais du peut-être faire le test sur : get_magic_quotes_runtime() ou
Plu simple encore, applique dirèctement la fonction "mysql_real_escape_string()" sur les données à passer via MySQL. Et oublies les tests.
Ex:: $sql = "INSERT INTO TABLEA colB='".mysqlreal_escape_string($variable)."'";
Ciao.
Bonjour
Je poste aujourd'huit car je suis tombé sur une sbutilité que je ne m'explique pas sur le fonctionnement de php et plus précisément sur magic_quotes_gpc.
J'ai bricolé un script (oui je suis un bleu) qui liste le contenu d'un dossier, répertoires par répertoires et qui enregistre le nom et le chemin de chaque dossiers et fichiers rencontrés dans une table mysql. Sous windows sa fonctionne (easyphp 1.8). Par contre, sous linux...(mysql 4.1.11, php 4.3.10)
Je vous passe les détails. Au départ la ligne magic_quotes_gpc dans php.ini est à On.
La, normal, $temp0=$ListeDossiers[$tempocomptage][0] vu que magic_quotes_gpc=On. Et bien à chaque fois qu'un dossier contiend une quote, j'ai ce joli message d'erreur au moment de l'écriture dans la table : impossible d'ajouter des données à la table listedossiers : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lala', 'dossier unir/a'lala', '13/08/2005 20:40:07', '13/08/2005 20:40:07', ' at line 6
Par contre, si je met magic_quotes_gpc=Off, tout fonctionne. $temp0 = addslashes($ListeDossiers[$tempocomptage].
Ma question est donc : quelle est la difference entre magic_quotes_gpc=On dans le php.ini et addslashes dans mon script? (je croyais, au final, que le résultat devait être le même).
Si quelqu'un peut m'éclairer Merci d'avance
Magic_quotes_gpc vérifies le mode de fonctionnement de PHP à la
réception de données via GET, POST et COOKIE (d'où le GPC ...).
Et à mon avis, les variables que tu manipules ne viennent pas de ceux là ?
Si c'est vrai, l'utilisation de "get_magic_quotes_gpc()" est ici inutile.
T'aurais du peut-être faire le test sur :
get_magic_quotes_runtime() ou
Plu simple encore, applique dirèctement la fonction
"mysql_real_escape_string()" sur les données à passer via MySQL.
Et oublies les tests.
Ex::
$sql = "INSERT INTO TABLEA colB='".mysqlreal_escape_string($variable)."'";
Ciao.
Bonjour
Je poste aujourd'huit car je suis tombé sur une sbutilité que je ne
m'explique pas sur le fonctionnement de php et plus précisément sur
magic_quotes_gpc.
J'ai bricolé un script (oui je suis un bleu) qui liste le contenu d'un
dossier, répertoires par répertoires et qui enregistre le nom et le chemin
de chaque dossiers et fichiers rencontrés dans une table mysql.
Sous windows sa fonctionne (easyphp 1.8). Par contre, sous linux...(mysql
4.1.11, php 4.3.10)
Je vous passe les détails.
Au départ la ligne magic_quotes_gpc dans php.ini est à On.
La, normal, $temp0=$ListeDossiers[$tempocomptage][0] vu que
magic_quotes_gpc=On.
Et bien à chaque fois qu'un dossier contiend une quote, j'ai ce joli message
d'erreur au moment de l'écriture dans la table :
impossible d'ajouter des données à la table listedossiers : You have an
error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'lala', 'dossier
unir/a'lala', '13/08/2005 20:40:07', '13/08/2005 20:40:07', ' at line 6
Par contre, si je met magic_quotes_gpc=Off, tout fonctionne.
$temp0 = addslashes($ListeDossiers[$tempocomptage].
Ma question est donc : quelle est la difference entre magic_quotes_gpc=On
dans le php.ini et addslashes dans mon script? (je croyais, au final, que le
résultat devait être le même).
Magic_quotes_gpc vérifies le mode de fonctionnement de PHP à la réception de données via GET, POST et COOKIE (d'où le GPC ...). Et à mon avis, les variables que tu manipules ne viennent pas de ceux là ?
Si c'est vrai, l'utilisation de "get_magic_quotes_gpc()" est ici inutile.
T'aurais du peut-être faire le test sur : get_magic_quotes_runtime() ou
Plu simple encore, applique dirèctement la fonction "mysql_real_escape_string()" sur les données à passer via MySQL. Et oublies les tests.
Ex:: $sql = "INSERT INTO TABLEA colB='".mysqlreal_escape_string($variable)."'";
Ciao.
Bonjour
Je poste aujourd'huit car je suis tombé sur une sbutilité que je ne m'explique pas sur le fonctionnement de php et plus précisément sur magic_quotes_gpc.
J'ai bricolé un script (oui je suis un bleu) qui liste le contenu d'un dossier, répertoires par répertoires et qui enregistre le nom et le chemin de chaque dossiers et fichiers rencontrés dans une table mysql. Sous windows sa fonctionne (easyphp 1.8). Par contre, sous linux...(mysql 4.1.11, php 4.3.10)
Je vous passe les détails. Au départ la ligne magic_quotes_gpc dans php.ini est à On.
La, normal, $temp0=$ListeDossiers[$tempocomptage][0] vu que magic_quotes_gpc=On. Et bien à chaque fois qu'un dossier contiend une quote, j'ai ce joli message d'erreur au moment de l'écriture dans la table : impossible d'ajouter des données à la table listedossiers : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lala', 'dossier unir/a'lala', '13/08/2005 20:40:07', '13/08/2005 20:40:07', ' at line 6
Par contre, si je met magic_quotes_gpc=Off, tout fonctionne. $temp0 = addslashes($ListeDossiers[$tempocomptage].
Ma question est donc : quelle est la difference entre magic_quotes_gpc=On dans le php.ini et addslashes dans mon script? (je croyais, au final, que le résultat devait être le même).