Maison  >  Article  >  développement back-end  >  Pourquoi mes variables $_POST s'échappent-elles sur un serveur mais pas sur un autre ?

Pourquoi mes variables $_POST s'échappent-elles sur un serveur mais pas sur un autre ?

DDD
DDDoriginal
2024-10-27 02:30:30795parcourir

Why Are My $_POST Variables Escaping on One Server But Not Another?

Pourquoi les variables $_POST s'échappent-elles sur un serveur mais pas sur un autre ?

Lorsque vous traitez des requêtes AJAX POST, il est déroutant de rencontrer un échappement de variables $_POST sur un serveur mais pas l'autre. Examinons la cause et proposons une solution.

Le problème est dû aux guillemets magiques, qui sont activés sur le serveur Linux mais pas sur le serveur Windows. Les guillemets magiques échappent automatiquement à certains caractères lors des saisies utilisateur, notamment les guillemets simples et doubles, les barres obliques inverses et les valeurs nulles.

Pour résoudre cet écart, il est recommandé de désactiver les guillemets magiques. Cependant, il est important de noter que les guillemets magiques seront supprimés à partir de PHP 6. En attendant, vous pouvez les désactiver au moment de l'exécution, bien que cette approche désactive uniquement les caractères d'échappement pour Sybase (UnixODBC).

Dans les cas où la désactivation des guillemets magiques n'est pas réalisable, une solution de contournement consiste à vérifier si les guillemets magiques sont activé et appliquez stripslashes() au contenu POST :

<code class="php">if (get_magic_quotes_gpc()) {
 $my_post_var = stripslashes($_POST["my_post_var"]);
}</code>

En suivant ces étapes, vous pouvez vous assurer que les variables $_POST sont traitées de manière cohérente sur différents serveurs, quels que soient les paramètres de citation magique.

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