Beim Senden großer HTML-Formulare per POST fehlen möglicherweise einige $_POST-Werte in PHP. Dies geschieht, obwohl die Werte im rohen Anforderungstext vorhanden sind, auf den über php://input zugegriffen werden kann.
Das Problem entsteht, weil PHP bestimmte Zeichen, wie Leerzeichen und Punkte, in Feldnamen ändert, um den veralteten register_globals zu entsprechen Einstellung. Infolgedessen sind möglicherweise einige Schlüssel geändert und fehlen in $_POST.
Um dieses Problem zu beheben, ziehen Sie die folgenden Problemumgehungen in Betracht:
<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>
Zum Beispiel HTML-Fragment:
<code class="html"><input type="text" name="my_field.value" value="test"></code>
PHP-Code:
<code class="php">$my_field_value = $_POST['my_field.value'];</code>
Das obige ist der detaillierte Inhalt vonWarum fehlen einige $_POST-Werte, wenn sie in php://input vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!