ホームページ >バックエンド開発 >PHPチュートリアル >PHP で JSON フォームを送信すると、$_POST 配列が空になるのはなぜですか?
PHP でフォームを送信したにもかかわらず空の $_POST 配列が表示される
PHP フォーム送信のトラブルシューティングを行うときに遭遇する一般的な難題は、成功したにもかかわらず空の $_POST 配列に遭遇することです。データ提出。この問題を解決するには、この動作に寄与する可能性のある根本的な要因を理解することが重要です。
この特定のケースでは、ユーザーはフォーム データが実際に file_get_contents('php:/ を介して正常に渡されていることを確認しています) /input')、$_POST/$_REQUEST 配列は空のままです。これは、さらなる調査が必要な特定の問題を示しています。
提供された解決策は問題の根本を示しています。フォーム送信で JSON コンテンツ タイプが使用されている場合、デフォルトでは $_POST 配列が設定されません。これは、JSON データが通常のフォームエンコードされたデータとは異なる方法で処理されるために発生します。
問題の解決
この問題に対処するために、ユーザーは、 file_get_contents('php://input') の結果からの JSON データと $_POST への手動入力配列:
$_POST = json_decode(file_get_contents("php://input"), true);
デコードされた JSON データを $_POST 配列に割り当てることで、元のフォーム送信の結果が空の $_POST 配列であっても、プログラマはフォーム データに予期した方法でアクセスできることを保証しました。 .
以上がPHP で JSON フォームを送信すると、$_POST 配列が空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。