Maison  >  Article  >  développement back-end  >  Pourquoi mes valeurs $_POST sont-elles absentes de mon script PHP ?

Pourquoi mes valeurs $_POST sont-elles absentes de mon script PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-28 12:18:02979parcourir

Why are My $_POST Values Missing from My PHP Script?

Valeurs PHP $_POST manquantes de php://input

Malgré la réception des données du formulaire via une requête POST, certaines valeurs n'apparaissent pas dans le tableau PHP $_POST. Le débogage révèle la présence de ces valeurs dans la chaîne de requête brute récupérée via php://input.

Cause :

PHP modifie les noms de champs contenant des caractères spécifiques (espaces, points, crochets ouverts, etc.) pour se conformer aux Register_globals obsolètes.

Solution :

  • Désactiver Register_globals : Depuis Le paramètre est obsolète, désactivez-le dans le fichier de configuration php.ini.
  • Utilisez une fonction de contournement : Utilisez une fonction qui analyse la chaîne de requête brute, extrayant et décodant les valeurs pour construire une nouvelle Tableau $vars contenant les valeurs manquantes. Voici un exemple :
<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>

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