ホームページ  >  記事  >  バックエンド開発  >  php postがデータを受信できない場合はどうすればよいですか?

php postがデータを受信できない場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2021-10-15 10:05:185689ブラウズ

php post がデータを受信できない問題の解決策: 1. php.ini の max_input_vars を 5000 に変更します; 2. 「$GLOBALS['HTTP_RAW_POST_DATA']」を通じてデータを取得します。

php postがデータを受信できない場合はどうすればよいですか?

この記事の動作環境:Windows7システム、PHPバージョン7.1、DELL G3コンピュータ

1:PHPが取得できませんPOST の使用 いくつかのデータの問題

PHP を使用して開発されたプロジェクト。テスト段階で、顧客からデータが正常に保存されなかったと報告されました。

前回のテストは合格しましたが、によるとお客様の情報、データが正常に保存されませんでした。問題を再現しました。

問題は次のようなものです。

お客様はブラウザから保存しましたが、一部のデータは正常に保存されましたが、一部のデータは保存されませんでした。正常に保存されませんでした。

そして I テストを通じて、$_POST 内の一部のデータは使用できないことが判明しましたが、一部のデータは使用可能です。

そして file_get_contents("php://input");この方法でもデータを取得できますが、データを処理する必要があるため、上記のコードを追加すると多くの変更が必要になります。

したがって、よく考えてみると、$_POST## の問題を解決する必要があります。

#私も最初は非常に戸惑いましたが、以前は $_POST がすべて取得できなかったのですが、一部の情報しか取得できなかったのは初めてです。 $_POST はデータを送信できるため、送信前にデータの一部がバックグラウンドに送信されなかったか、バックグラウンドで受信されませんでした

ブラウザのリクエストを確認したところ、問題は見つかりませんでした。すべてのデータは正常に送信されました

それは、バックグラウンドがそれを取得していないことを意味します

#私のテストでは、送信されたデータを手動で削除したことがわかりました。

バックエンド $_POST を送信してすべてのデータを取得し、インターネットで検索しました。

$_POST によって送信されたデータにはサイズ制限があることがわかりました

次に、php.ini の max_input_vars を 5000 に変更して完全に解決します。

2: $ の問題の解決策PHP の _POST はフロントエンド データを受信できません

デフォルトでは、フロントエンド リクエスト タイプは Content-Type:application/x-www-form-urlencoded です。データを取得するには $_POST を使用します。 フロントエンドリクエストタイプがContent-Type:application/jsonの場合、$_POSTだけではデータを取得できません。 (たとえば、vue.js の axios、デフォルト モードは application/json)

現時点では、$GLOBALS['HTTP_RAW_POST_DATA'] を通じて取得し、json_decode を使用してそれを例は次のとおりです。

$mypost = $GLOBALS['HTTP_RAW_POST_DATA']$postdata = json_decode($mypost);$username = $postdata->username;

「未定義のインデックス: HTTP_RAW_POST_DATA」というプロンプトが表示された場合は、コードを次のように変更します。

$mypost = isset($GLOBALS['HTTP_RAW_POST_DATA'])?$GLOBALS['HTTP_RAW_POST_DATA']:file_get_contents("php://input");$postdata = json_decode($mypost);$username = $postdata->username;

推奨学習: 「

PHP ビデオ チュートリアル

以上がphp postがデータを受信できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。