Maison > Article > développement back-end > Pourquoi mes variables $_POST sont-elles échappées sur mon serveur de production mais pas sur mon serveur local ?
Pourquoi l'échappement se produit dans les variables $_POST en PHP
Question :
Pourquoi $ Les variables _POST sont-elles échappées dans un script PHP lors de la réception des données d'une requête AJAX POST ? Cela se produit sur un serveur de production exécutant PHP 5.2.12 sous Linux, mais pas sur un serveur local exécutant PHP 5.3.1 sous Windows.
Réponse :
Citations magiques , en particulier magic_quotes_gpc, sont probablement activés sur le serveur Linux.
Explication :
Les guillemets magiques échappent automatiquement à certains caractères (guillemets simples et doubles, barres obliques inverses et octets nuls) dans les données reçues de sources externes, y compris les requêtes POST. Lorsque ces guillemets sont activés, vous devez les désactiver car ils affecteront la façon dont les variables POST sont référencées.
Solutions possibles :
<code class="php">if (get_magic_quotes_gpc()) { $my_post_var = stripslashes($_POST["my_post_var"]); }</code>
Remarque : Cette solution supprime les barres obliques de toutes les données POST, utilisez-la donc de manière sélective en fonction sur vos besoins.
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!