Pourquoi les variables PHP POST sont-elles absentes de $_POST alors qu'elles sont présentes dans php://input ?

Linda Hamilton
Libérer: 2024-10-30 06:44:02
original
305 Les gens l'ont consulté

Why are PHP POST variables missing from $_POST despite being present in php://input?

Variables PHP POST manquantes malgré leur présence dans php://input

Introduction :

Lors du traitement des soumissions de formulaires en PHP via des requêtes POST, il est possible de rencontrer un comportement étrange où certaines valeurs sont absentes dans le superglobal $_POST même si elles sont présentes dans la requête brute via php://input.

Description du problème :

Le problème survient lors de la soumission de formulaires HTML volumineux avec des champs imbriqués. Malgré l'envoi des données du formulaire au serveur, certaines valeurs peuvent ne pas parvenir à être renseignées dans $_POST. L'inspection de php://input révèle que ces valeurs sont bien incluses dans la requête mais semblent tronquées dans $_POST.

Cause :

Le comportement est attribué à la modification par PHP des champs POST contenant des caractères comme des points, des espaces, des crochets ouverts, etc. Ces caractères étaient auparavant traités par la configuration obsolète de register_globals.

Solution :

Pour résoudre ce problème, vous pouvez utiliser des solutions de contournement telles que les suivantes :

<code class="php">// Get real POST variables
function getRealPOST() {
    $pairs = explode("&amp;", 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>
Copier après la connexion

Cette fonction analyse la requête POST brute dans php://input et reconstruit les variables POST avec les noms de champs d'origine, en tenant compte du remplacements de caractères effectués par PHP.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!