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 mes variables $_POST sont-elles échappées sur mon serveur de production mais pas sur mon serveur local ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 10:01:03470parcourir

Why are My $_POST Variables Escaped on My Production Server But Not My Local Server?

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 :

  • Désactiver les guillemets magiques dans php.ini : Si possible, désactivez les guillemets magiques dans le fichier de configuration php.ini.
  • Utilisez stripslashes() : Vérifiez si les guillemets magiques sont activés avec get_magic_quotes_gpc(). Si tel est le cas, utilisez stripslashes() sur toutes les données extraites des variables POST :
<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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn