Lorsque vous travaillez avec des données POST en PHP, en particulier dans un Dans l'environnement WordPress, il est possible de rencontrer des comportements d'échappement automatique inattendus malgré la désactivation des guillemets magiques. Ce problème déroutant survient lorsque les données POST subissent un échappement automatique, même si les citations magiques seraient désactivées (get_magic_quotes_gpc() renvoie 0).
En approfondissant Dans le problème, il devient évident que WordPress joue un rôle crucial dans le déclenchement de ce mécanisme d'échappement automatique. Lorsque WordPress est démarré dans le cadre du processus d'initialisation de votre application, son code interfère avec le comportement naturel des guillemets magiques de PHP.
WordPress inclut une fonctionnalité qui intercepte les données de requête, y compris les données POST, et effectue certaines opérations, dont l'une échappe aux guillemets simples ('). Ce comportement s'étend même lorsque les guillemets magiques sont désactivés dans php.ini.
Un examen plus approfondi de la base de code WordPress révèle un bug signalé sous le système WordPress Core Trac (ticket 18322). Ce problème est lié à une gestion incorrecte des données de requête, qui déclenche un échappement indésirable.
Heureusement, une solution est disponible pour résoudre ce dilemme d'échappement automatique. . Le Codex WordPress recommande d'utiliser la fonction stripslashes_deep() pour « annuler l'échappement » des données POST avant d'effectuer des opérations dessus. En utilisant cette fonction, vous pouvez efficacement remplacer l'échappement automatique de WordPress et récupérer les données dans leur format d'origine.
Pour implémenter cette solution, ajoutez le code suivant à votre script PHP :
$_GET = array_map('stripslashes_deep', $_GET);
$_POST = array_map('stripslashes_deep', $_POST);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_SERVER = array_map('stripslashes_deep', $_SERVER);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
Ce code supprime les barres obliques de toutes les superglobales, garantissant que les données POST ne sont pas automatiquement échappées lors d'un accès en PHP.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3