La directive magic_quotes_gpc ne peut être désactivée qu'au niveau du système, et non pas à l'exécution. En d'autres termes, utiliser ini_set() n'est pas possible.
Exemple 32.1. Désactiver les guillemets magiques du coté du serveur
Voici un exemple qui donne la valeur de Off à ces directives dans le fichier php.ini . Pour plus de détails, voyez la section Comment changer la configuration .
; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off
Si vous n'avez pas accès au serveur, utilisez le fichier .htaccess . Par exemple :
php_flag magic_quotes_gpc Off
Afin d'écrire du code portable sur tous les environnement, et où vous ne pourrez pas forcément modifier la configuration du serveur, voici un exemple de désactivation de magic_quotes_gpc à l'exécution. Cette méthode est inefficace, et il est recommandé d'utiliser les autres solutions si possible.
Exemple 32.2. Désactivation des guillemets magiques à l'exécution
<?php
if (
get_magic_quotes_gpc
()) {
function
stripslashes_deep
(
$value
)
{
$value
=
is_array
(
$value
) ?
array_map
(
'stripslashes_deep'
,
$value
) :
stripslashes
(
$value
);
return
$value
;
}
$_POST
=
array_map
(
'stripslashes_deep'
,
$_POST
);
$_GET
=
array_map
(
'stripslashes_deep'
,
$_GET
);
$_COOKIE
=
array_map
(
'stripslashes_deep'
,
$_COOKIE
);
$_REQUEST
=
array_map
(
'stripslashes_deep'
,
$_REQUEST
);
}
?>