2010-02-16 23 views
18

我想知道是否有人知道全球職位的總長度。例如:PHP:後期全局變量的總長度是多少?

$_POST['formInput'] = "hello world, how long can i be?"; 

我正在創建一個網站,有人會在textarea中輸入未知數量的字符,因此可能會在word文檔中包含2個頁面。因此,如果有人知道除了使用全球郵政之外我還能做到這一點的其他方法嗎? (它不能被保存在一個文件中,因爲它不重要的數據,我不希望其他人找到)這將是非常有益的。

感謝

+1

可能的重複[什麼是發佈請求的大小限制?](http://stackoverflow.com/questions/2364840/what-is-the-size-limit-of-a-post-request)this比較老,一個月,但另一個更好提出恕我直言 – 2014-11-10 08:00:23

回答

21

檢查你的php.ini爲post_max_size。默認情況下,這通常約爲8MB,但如果您使用共享主機,則可能會有所不同。

; Maximum size of POST data that PHP will accept. 
post_max_size = 8M

如果您希望向服務器發送大量數據,則必須使用$_POST。爲了進一步研究,我建議在文檔中檢查POST Method Uploads

+10

Apache也有LimitRequestBody&LimitRequestFieldSize指令,並不總是安全的假設它只是PHP的限制。 – tadamson 2010-02-16 22:33:05

7

$_POST從HTTP請求的主體填充。由於HTTP請求的大小沒有限制,協議層沒有限制。然而PHP對於它將讀取多少輸入有一些限制。您可以使用ini設置來控制post_max_size

1

如果您希望從瀏覽器向服務器發送大量數據,則必須使用HTTP POST方法 - 這意味着將接收數據PHP方面,在$_POST超全局數組中;對此你沒有太多的辦法。

配置指令post_max_size定義了可以使用POST方法接收的最大數據量 - 根據需要,您可能需要將其設置爲高於默認值的數值。

而且,如在post_max_size的文檔中所述,爲memory_limit設置的值也可能具有其重要性。

3

另一個問題可能是php.ini中指令max_input_vars(默認值爲1000)的默認限制,而不僅僅是post_max_size。如果你有例如一個包含數千個複選框的非常大的表單,$ _POST數組只有1000個鍵。

+1

這實際上解決了我的問題,請求比'post_max_size'少很多,但它達到了'max_input_vars'的限制。謝謝! – themarketka 2014-08-28 13:45:00

+1

你拯救了我的一天。我只發佈了大約80kb的數據,但有1000個字段(大表單)。直到我查看了瀏覽器最初發布的與$ _POST []實際包含的內容,並意識到「僅」解析了1000個字段之後,任意字段似乎在PHP一側丟失。 – flu 2015-09-25 09:24:51