ホームページ >バックエンド開発 >PHPチュートリアル >ポストデータサイズ制限の問題

ポストデータサイズ制限の問題

WBOY
WBOYオリジナル
2016-06-23 13:52:222013ブラウズ

バックグラウンド投稿にデータを送信する際、一定のサイズを超えるとバックグラウンド投稿データが空になり、バックグラウンドで投稿データを受信できないという問題が発生しました。

その理由は何ですか?どのPHP関数がブロックされているのか?それともphp.iniの設定でしょうか?


php.ini post_max_size = 64M;


ディスカッションへの返信(解決策)

php 5.3.9 以降ではデータ項目の数に制限があります

php 5.3.9 以降のデータ項目数 制限数



どのデータ項目が制限されますか?

投稿フォーム コントロールの数

投稿フォーム コントロールの数




max_file_uploads ですか?

ファイルをアップロードしましたか?
?upload_max_filesize の要件はありますか?

ファイルをアップロードしましたか?
?upload_max_filesize は必要ですか?




Upload_max_filesize = 30M
max_file_uploads = 500
post_max_size = 64M; この設定は、理論的には一般的な投稿データの送信に対応できます。

はい、でもあなたのサイズはどれくらいですか?

投稿内のデータの大きさはどれくらいですか? Print_r($_POST);

投稿内のデータの大きさはどれくらいですか? Print_r($_POST);


echo print_r($_POST);

出力結果


Array
(
)
1


非常に奇妙な出力です。 出力結果は、大きすぎるデータを含む送信された post 変数がないことを示しています。
別途テストを行った結果、データが64999を超えた場合は正常に送信できません。これ未満の場合はバックグラウンドで受信できます。

なお、このデータは大きすぎるため、他の投稿データには影響しません。

print_r($_POST);

空の配列を出力します。これは、post メソッドを使用して送信しなかったか、php.ini で post 送信メソッドを無効にしたことを意味します

投稿が失敗した場合 (データが許可された範囲を超えている場合) )、出力されます 何もありません



print_r($_POST);
空の配列を出力します。これは、post メソッドを使用して送信しなかったことを意味します
、または php.ini で post submit メソッドを無効にしたことを意味します
投稿が失敗した場合(データが許容範囲を超えた場合)、何も出力されません



1つの投稿データのサイズに制限があるようですが、php.iniかどこかで制限されているのかはわかりません。オンラインで検索した関連条件の制限では、この問題を解決できません。

echo file_get_contents('php://input'); の結果を見てください

何か問題が発生した場合は、通常、エラーメッセージがあるので、それを見る必要はありません



ことが分かりました理由は、数日前にsuhosinを追加したためです。このsuhosinによって機能が制限されています。ここで問題は、suhosin をどのように設定するかということです。
suhosin.post.max_value_length 65000 65000


完了、php.ini に suhosin 設定を追加します
suhosin.post.max_value_length = 4194304

suhosin.post.max_vars = 20000
su hosin.request.max_vars=2000

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