Maison > Article > développement back-end > Pourquoi mes données WordPress POST s'échappent-elles même après avoir désactivé Magic Quotes ?
L'énigme des citations magiques dans WordPress
Malgré la désactivation des guillemets magiques de PHP (vérifiée par get_magic_quotes_gpc() renvoyant 0), les données POST sont toujours échappées . Ce problème survient lorsque WordPress est intégré dans une installation multisite.
Le rôle de WordPress dans l'échappement automatique
La cause de l'échappement automatique réside dans la base de code de WordPress. Un bug (ticket n° 18322) dans WordPress tente de nettoyer les entrées même lorsque les guillemets magiques sont désactivés. La solution consiste à supprimer manuellement et explicitement les barres obliques des données d'entrée, comme suggéré dans le codex.
Supprimer profondément les barres obliques
Pour résoudre le problème, supprimez en profondeur les barres obliques des superglobaux tableaux ($_GET, $_POST, $_COOKIE, $_SERVER et $_REQUEST) en utilisant la fonction stripslashes_deep() :
<code class="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);</code>
Approche alternative
Alternativement, envisagez d'utiliser array_map() localement sur des tableaux spécifiques au lieu de remplacer les superglobales :
<code class="php">$post = array_map('stripslashes_deep', $_POST);</code>
Considérations
La modification des superglobales comme indiqué ci-dessus peut avoir des implications pour votre application. Si le contexte spécifique le permet, envisagez une suppression sélective pour maintenir l’intégrité des données. Consultez les références fournies pour des informations supplémentaires.
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!