par
AB » 19 juin 2009, 17:27
Ce serait pas un pb de get_magic_quote_gpc() qui est activé et qui fait doublon avec la fonction mysql_real_escape_string() lors de l'enregistrement de tes variables ?
Si c'est le cas, dans les pages qui font l'insertion en bdd, tu peux essayer de mettre au début de page (en tous cas avant l'utilisation de tes variables) :
if (get_magic_quotes_gpc()) {
function undoMagicQuotes($array) {
$newArray = array();
foreach($array as $key => $value)
{
$key = stripslashes($key);
if (is_array($value))
{
$newArray[$key] = undoMagicQuotes($value);
}
else
{
$newArray[$key] = stripslashes($value);
}
}
return $newArray;
}
$_GET = undoMagicQuotes($_GET);
$_POST = undoMagicQuotes($_POST);
$_COOKIE = undoMagicQuotes($_COOKIE);
$_REQUEST = undoMagicQuotes($_REQUEST);
}
Cela traite toutes les variables gpc d'un coup.
Maintenant si tu n'a qu'une ou deux variables à récupérer tu peux aussi faire
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
$insertion = "INSERT INTO table(champ1) VALUES('".mysql_real_escape_string(Verif_magicquotes($_POST['var']))."')";
Enfin bref dans le cas où get_magic_quotes_gpc() est activé la bonne façon de faire est de supprimer les \ avant d'utiliser la fonction mysql_real_escape_string() mais
en aucun cas de garder les \ provenant du get_magic_quotes_gpc() pour se passer d'utiliser mysql_real_escape_string().
Ce serait pas un pb de get_magic_quote_gpc() qui est activé et qui fait doublon avec la fonction mysql_real_escape_string() lors de l'enregistrement de tes variables ?
Si c'est le cas, dans les pages qui font l'insertion en bdd, tu peux essayer de mettre au début de page (en tous cas avant l'utilisation de tes variables) :
[php]if (get_magic_quotes_gpc()) {
function undoMagicQuotes($array) {
$newArray = array();
foreach($array as $key => $value)
{
$key = stripslashes($key);
if (is_array($value))
{
$newArray[$key] = undoMagicQuotes($value);
}
else
{
$newArray[$key] = stripslashes($value);
}
}
return $newArray;
}
$_GET = undoMagicQuotes($_GET);
$_POST = undoMagicQuotes($_POST);
$_COOKIE = undoMagicQuotes($_COOKIE);
$_REQUEST = undoMagicQuotes($_REQUEST);
} [/php]
Cela traite toutes les variables gpc d'un coup.
Maintenant si tu n'a qu'une ou deux variables à récupérer tu peux aussi faire
[php]function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
$insertion = "INSERT INTO table(champ1) VALUES('".mysql_real_escape_string(Verif_magicquotes($_POST['var']))."')";[/php]
Enfin bref dans le cas où get_magic_quotes_gpc() est activé la bonne façon de faire est de supprimer les \ avant d'utiliser la fonction mysql_real_escape_string() mais [b]en aucun cas[/b] de garder les \ provenant du get_magic_quotes_gpc() pour se passer d'utiliser mysql_real_escape_string().