Maison >développement back-end >tutoriel php >Pourquoi certaines valeurs $_POST manquent-elles dans PHP et comment puis-je y remédier ?

Pourquoi certaines valeurs $_POST manquent-elles dans PHP et comment puis-je y remédier ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-28 17:57:29854parcourir

Why are some $_POST values missing in PHP and how can I fix it?

Valeurs $_POST manquantes en PHP

Lors de la soumission d'un formulaire HTML via une requête POST, il est prévu que toutes les valeurs soumises remplissent le superglobal $_POST. Cependant, dans certains cas, certaines valeurs peuvent être manquantes.

Quelles sont les causes des valeurs manquantes ?

PHP modifie automatiquement les valeurs contenant des caractères spécifiques (par exemple, espace, point, crochet ouvert) pour garantir la compatibilité avec la fonctionnalité obsolète register_globals. Cette modification peut entraîner l'omission de valeurs dans $_POST.

Résoudre le problème

Pour résoudre ce problème, diverses solutions de contournement peuvent être utilisées. Une méthode populaire consiste à lire les données POST brutes à l'aide de file_get_contents('php://input') et à les analyser manuellement pour extraire les valeurs manquantes.

Vous trouverez ci-dessous un exemple de fonction qui peut être utilisée pour "corriger" les valeurs $_POST :

<code class="php">function getRealPOST() {
    $pairs = explode("&", file_get_contents("php://input"));
    $vars = array();
    foreach ($pairs as $pair) {
        $nv = explode("=", $pair);
        $name = urldecode($nv[0]);
        $value = urldecode($nv[1]);
        $vars[$name] = $value;
    }
    return $vars;
}</code>

En utilisant cette fonction ou des solutions de contournement similaires, vous pouvez vous assurer que toutes les valeurs soumises sont correctement analysées et disponibles dans le tableau $_POST.

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