2012-02-20 49 views
3

我想傳遞一個相當大的POST請求的PHP,當我的var_dump $ _POST陣列,一個最大型,變量缺失。 (其實這是base64編碼的二進制上傳的POST請求的一部分)PHP不能解析大崗變

有趣的事情,我的開發PC上完全相同請求被正確解析,沒有任何丟失的變量。

我檢查了PHP的內容://輸入服務器和開發PC上,他們是完全一樣的,MD5匹配。然而,開發PC可以識別所有變量,並且服務器會丟失一個。 我試着在php.ini中改變許多不同的選項,並得到零效果。

也許有人會指出我是正確的。 這是我的php://輸入(〜5兆字節)http://www.mediafire.com/?lp0uox53vhr35df

+1

你可能擊中多數民衆贊成在.ini – BenOfTheNorth 2012-02-20 18:19:14

+0

都能跟得上設定的max_post_size,它已經220M。如果是這樣,php://輸入將不包含整個信息。 – Nameless 2012-02-20 18:24:21

+0

我期望的內存限制是可以的 - 但你有沒有檢查,以確保它的設置足夠高,以處理的大小?如果不是,我會很驚訝。 – BenOfTheNorth 2012-02-20 18:31:32

回答

0

由於Suhosin擴展,服務器可能會阻止它。

http://www.hardened-php.net/suhosin/configuration.html#suhosin.post.max_value_length

suhosin.post.max_value_length

類型:整型默認值:65000定義的,其通過POST請求註冊的可變 的最大長度。

這將在php.ini中被改變。

請記住,這比了Suhosin補丁這是常見的共享主機的很多不同。我不知道補丁是否會導致這個問題。

+0

suhosin.post.max_value_length = 250000000 不幸的是,我已經嘗試過。也許格式不正確,我會在大約7小時後在運行時檢查這個值。 – Nameless 2012-02-21 08:43:54

+0

它與suhosin.request.max_value_length一起工作。我會將你的答案標記爲正確的,這是最接近的答案。 – Nameless 2012-02-21 17:14:20