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 31-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 31-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);