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!