目前位置: 首頁 > 商品管理 > max_input_vars 會限制 ECShop 後台批次可上傳的商品數量

max_input_vars 會限制 ECShop 後台批次可上傳的商品數量 超大 稍大 微大

原來如此 發表於: 2019-03-30
在 ECShop 的後台有一個批次上傳的功能,可以幫助商家利用 CSV 檔來快速增加商品資料
對商品數量繁多且名稱相似度高的商家以及經常上架大量商品的商家特別好用

CSV 檔案使用 EXCEL 打開即可

不過,基於安全與效能的考量 php 的環境也會越來越嚴謹
例如 max_input_vars 屬性限制了表單內變數的最多數量,預設值為 1000
上傳商品資料超過這個限制時就會有錯誤訊息

php Warning:  Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0

ECShop 上傳商品的資料格式有 21 個欄位,也就產生 21 的表單輸入變數
而 1000 除以 21 取整數得 47
也就是每批商品資料最多上傳到 47 筆商品資料
實際上可能沒那麼多,因為 max_input_vars 的計算是包含 $_GET 與 $_POST 以及 $_COOKIE 的總數

關於這個屬性的說明:

屬性名稱:max_input_vars
預設值:1000
可設定的範圍:php_INI_PERDIR
更版備註:Available since php 5.3.9.

上列說明可參考 php 官網完整文件:https://www.php.net/manual/en/info.configuration.php

也因為可設定的範圍是 php_INI_PERDIR
所以只能在 php.ini 與 .htaccess 與 httpd.conf 與 .user.ini 的設定檔內進行設定
也就無法在 php 程式內用 ini_set() 函數來調整
因此較佳的調整位置就可以選擇 .htaccess 來處理

因為只有在後台有遇到問題所以目前只需要在 admin/ 目錄下編輯或增加 .htaccess 設定檔
然後在 .htaccess 內加入一行設定如下:
    php_value max_input_vars 100000
這樣就可以提高上傳的資料數量了

若要發表問題請至留言板提問!