POST 経由で大きな HTML フォームを送信する場合、一部の $_POST 値が PHP で欠落する可能性があります。これは、php://input 経由でアクセスできる生のリクエスト本文に値が存在するにもかかわらず発生します。
この問題は、PHP が非推奨の register_globals に準拠するようにフィールド名のスペースやドットなどの特定の文字を変更するために発生します。設定。その結果、一部のキーが変更され、$_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>
たとえば、HTML フラグメント:
<code class="html"><input type="text" name="my_field.value" value="test"></code>
PHP コード:
<code class="php">$my_field_value = $_POST['my_field.value'];</code>
以上がphp://input に $_POST 値が存在するにもかかわらず、一部の値が欠落しているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。