Lors de la soumission de formulaires HTML volumineux via POST, certaines valeurs $_POST peuvent être manquantes dans PHP. Cela se produit malgré la présence de valeurs dans le corps brut de la requête accessible via php://input.
Le problème survient car PHP modifie certains caractères, tels que les espaces et les points, dans les noms de champs pour se conformer aux registres obsolètes register_globals. paramètre. Par conséquent, certaines clés peuvent être altérées et absentes de $_POST.
Pour résoudre ce problème, envisagez les solutions de contournement suivantes :
<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>
Par exemple, fragment HTML :
<code class="html"><input type="text" name="my_field.value" value="test"></code>
Code PHP :
<code class="php">$my_field_value = $_POST['my_field.value'];</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!