Maison >développement back-end >tutoriel php >Pourquoi mes variables AJAX POST sont-elles échappées sur le serveur de production mais pas sur le serveur local ?

Pourquoi mes variables AJAX POST sont-elles échappées sur le serveur de production mais pas sur le serveur local ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 13:32:03594parcourir

Why are My AJAX POST Variables Escaped on the Production Server But Not on the Local Server?

Pourquoi les variables $_POST s'échappent-elles en PHP ?

Problème :

En PHP, les variables $_POST reçues de Les requêtes AJAX POST sont échappées sur un serveur de production alors qu'elles restent intactes sur un serveur local. Le serveur local exécute PHP 5.3.1 sous Windows, tandis que le serveur de production exécute PHP 5.2.12 sous Linux.

Raison :

L'écart entre les deux serveurs est probablement en raison de l'utilisation de guillemets magiques sur le serveur de production.

Citations magiques :

Les guillemets magiques sont une fonctionnalité obsolète de PHP qui échappe automatiquement certains caractères dans $_GET , $_POST et $_COOKIE pour vous protéger contre l'injection SQL et d'autres attaques. Les caractères d'échappement incluent :

  • Guillemets simples (')
  • Guillemets doubles (")
  • Barres obliques inverses ()
  • Caractère nul (NUL)

Solution :

Pour résoudre le problème et garantir un comportement cohérent sur les deux serveurs, vous pouvez désactiver les guillemets magiques sur le serveur de production. Cela peut être fait soit. globalement dans php.ini ou par script en utilisant set_magic_quotes_runtime().

Si la désactivation des guillemets magiques n'est pas possible, vous pouvez supprimer manuellement les barres obliques à l'aide de la fonction stripslashes() sur toutes les données POST que vous récupérez :

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

En désactivant ou en gérant les guillemets magiques de manière appropriée, vous pouvez vous assurer que les variables $_POST ne sont pas échappées sur le serveur de production, permettant ainsi aux requêtes AJAX POST de fonctionner correctement.

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