post 資料大小的限制問題

來源:互聯網
上載者:User
遇到一個問題:往後台post提交資料時,當超過一定大小,就發現背景post資料為空白,後台收不到post資料。

請問是什麼原因?是不是因為屏蔽了哪個php函數?還是php.ini的某項設定?


php.ini 中 post_max_size = 64M;


回複討論(解決方案)

php 5.3.9 以後還有個資料項目數的限制

php 5.3.9 以後還有個資料項目數的限制



請問是哪個資料項目限制?

post 表單控制項數

post 表單控制項數




是 max_file_uploads 嗎?

你有上?檔案的??
?有一?upload_max_filesize 需要?

你有上?檔案的??
?有一?upload_max_filesize 需要?




upload_max_filesize = 30M
max_file_uploads = 500
post_max_size = 64M;

這個設定按道理是可以滿足一般post資料提交。

是的,但你的??有多大呢?

你post的資料有多大,print_r($_POST); 看看。

你post的資料有多大,print_r($_POST); 看看。




echo print_r($_POST);

輸出結果


Array
(
)
1


很奇怪的輸出。

print_r($_POST);

print_r($_POST);



輸出結果顯示,沒有提交的那個資料過大的post變數。
單獨測試了一下,資料如果超過 64999,就無法正常提交,小於這個資料,後台能收到。

另外,這個資料過大,不影響別的post資料。

print_r($_POST);
列印出空數組,表示你沒有用 post 方式提交
或是你在 php.ini 禁用了 post 提交方式

如果是 post 失敗(資料超出允許範圍)則列印出的是什麼都沒有

print_r($_POST);
列印出空數組,表示你沒有用 post 方式提交
或是你在 php.ini 禁用了 post 提交方式

如果是 post 失敗(資料超出允許範圍)則列印出的是什麼都沒有



好像是被限制了單個post資料的大小,但是,不知道是在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
suhosin.request.max_vars=2000

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.