PHP中的max_input_vars指令一些介紹

來源:互聯網
上載者:User

今天接到客服部工作人員反饋的一個客戶的問題,產品是允許使用者添加一個產品屬性的,而每個屬性是由多個表單域組成 ,這樣當每添加一個屬性就等於添加了n個表單域,這個客戶添加的非常的多,發現在提交儲存的時候總是失敗,提示其中一個表單元素的索引值不存在,經測試是探索服務端接收的一些表單域丟失了一部分。起初分析的是伺服器接收的資料超出了php設定的max_post_size(其實當時已經設定了8M,足夠使用了),修改了測試發現此問題仍然存在。後來將使用者原來的一些添加的表單元素進行刪除,再重新添加同樣資料庫表單域可以成功,但一旦超出一定數量的表單域就會發生丟失的情況,這個時候首先懷疑的是apache是否有類似限制接收隱藏欄位的指令,找了沒有找到,緊接著在php中批到一個max_input_vars這個指令,意思就是說php中允許接收的最大表單域資料,到目前為止基本上是確定這個原因引起的了,獎其修改為2000,重啟Apache,發現一切正常。

修改php.ini中的max_input_vars參數限制提交的表單數量

比如phpmysqladmin讀取資料庫表,然後寫入編輯,但是資料庫欄位有128個,然後每個欄位有11個input框,大概有1400多個input,而ax_input_vars預設值為1000.

修改php.ini裡面加入max_input_vars

;;;;;;;;;;;;;;;;;;;

; Resource Limits ;


;;;;;;;;;;;;;;;;;;;

max_execution_time = 30   //每個指令碼的最大執行時間,以秒為單位

max_input_time = 60         //每個指令碼解析請求的資料可能花費的最大時間,以秒為單位

max_input_vars = 2000

memory_limit = 32M         //每個指令碼可以使用的最大記憶體,以M為單位,

總結:提起php中的max_input_vars 估計很少人知道這個這個指令,因為他的使用情境實在是太少了,在php.ini中這個指令的定義是指服務端最大可以接收的表單域的數量多少,預設是1000,這足夠我們平時使用了。但仍然有一些特殊的情況下需要修改此值的大小。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.