2015-07-10 91 views
0

我想通過POST使用POST方法發佈大型表單。我的表單發佈腳本一直工作得很好,直到現在$_POST數組變得非常大。

當我打印出file_get_contents ('php://input');時,會顯示窗體中包含的所有輸入。但是當我打印出$_POST時,它只獲得表格的第一部分。我試圖刪除行,然後$_POST方法再次正常工作。只要它變得太大,它就不會發布表單中包含的所有數據。

任何人有任何想法?我試圖編輯php.ini並將post_max_size設置爲更高的值,但它也沒有幫助。

+1

請顯示一些代碼。 – Milen

+0

可能重複[$ \ _ POST最大數組大小](http://stackoverflow.com/questions/9807100/post-max-array-size) – Lance

回答

1

嘗試轉儲phpinfo()並查找max_input_vars。如果它在那裏,你可以在php.ini中將它設置爲更高的數字,只要你認爲合適。如果你沒有看到它,很可能你沒有收到這個確切的補丁,並且這個數字已經被你的發行版硬編碼了。

2

默認情況下,在較低版本的PHP(< 5.3.9)中,$_POST變量的數量限制爲1000.無法更改該值。

在更高版本中,您可以將max_input_vars設置爲任意數字。

如果你低於5.3.9,你可以做一些變通。例如json_encode這些變量並將它們作爲單個變量發送。 $_POST的限制默認設置爲8mb,但可以在php.ini文件post_max_size="whatever_size_you_wish_here"中更改。

如何增加的變量$_POST數量:

2個選擇:

  • .htaccess文件做php_value max_input_vars 2000(or whatever)

  • 文件中

    你與ini_set('max_input_vars', 2000);

  • 工作
+0

我試圖在php.ini中編輯'max_input_vars',但是那也沒有幫助。我目前的PHP版本是5.6.9 – user2994294

+0

@ user2994294做'var_dump(count($ _ POST,COUNT_RECURSIVE))'看看你有多少。不妨看看你從哪裏開始。 – Andrew

+0

得到了輸出int(1165) – user2994294

1

剛解決它,顯然我的服務器沒有更新max_input_vars出於某種奇怪的原因。現在,我增加了它的價值,它的工作。

+0

考慮接受答案,以便人們可以在將來類似的情況下參考。 – Andrew