Maison >développement back-end >tutoriel php >Pourquoi magic_quotes_gpc fermé dynamiquement n'est-il pas valide ?
Cet article partage principalement avec vous le problème de fermeture dynamique invalide de magic_quotes_gpc en PHP. J'espère qu'il pourra vous aider à résoudre ce genre de problème.
En parcourant des projets en ligne hier, j'ai trouvé un problème : il y a une barre oblique inverse supplémentaire avant les guillemets dans certaines sorties de texte, par exemple :
Il y a trop de "barre oblique inverse" dans les guillemets
À en juger par les résultats affichés sur la page, on devine que la configuration magic_quotes_gpc en PHP est activée. Ensuite, j'ai vérifié le programme et j'ai constaté que dans le fichier d'entrée, cette configuration a été fermée dynamiquement :
ini_set('magic_quotes_gpc', 'Off');
Pourquoi cela n'a-t-il pas pris effet ?
Après quelques recherches, mes collègues m'ont aidé à trouver la raison. Il s'est avéré que la requête avait été analysée avant que je modifie dynamiquement la configuration, la modification n'a donc pas pris effet pour la requête actuelle.
Voir la page Web suivante pour plus de détails. Un collègue a également rencontré le même problème :
https://bugs.php.net/bug.php?id=32867
magic_quotes_gpc est appliqué lors de l'analyse de la requête avant que votre script PHP ne prenne le contrôle. Ainsi, même si vous pouvez modifier ce paramètre dans votre script, cela n'aura aucun effet.
Étant donné qu'il existe plusieurs projets sur le serveur, dans l'ordre pour ne pas affecter les autres projets, nous ne pouvons pas modifier directement la configuration de php.ini, nous avons donc utilisé le code écrit par Molu vs Zhuihui pour traiter récursivement le contenu gpc :
if (ini_get('magic_quotes_gpc')) { function stripslashesRecursive(array $array) { foreach ($array as $k => $v) { if (is_string($v)) { $array[$k] = stripslashes($v); } else if (is_array($v)) { $array[$k] = stripslashesRecursive($v); } } return $array; } $_GET = stripslashesRecursive($_GET); $_POST = stripslashesRecursive($_POST); }
Recommandations associées :
php Instructions d'utilisation de la fonction get_magic_quotes_gpc()
Introduction à l'utilisation de la fonction php get_magic_quotes_gpc
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!