PHP中的max_input_vars指令一些介紹
PHP中的max_input_vars,PHP從5.3.9開始增長一個變量max_input_vars用來限制提交的表單數量了,咱們這邊一塊兒來看看吧。
今天接到客服部工做人員反饋的一個客戶的問題,產品是容許用戶添加一個產品屬性的,而每一個屬性是由多個表單域組成 ,這樣當每添加一個屬性就等於添加了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,這足夠咱們平時使用了。但仍然有一些特殊的狀況下須要修改此值的大小。
須要更多資訊能夠關注時間財富網php