2012-03-12 83 views
18

我從我的頁面上的表單發送數據到我的服務器時收到新的php警告。警告如下:PHP警告:未知:輸入變量超過1000

PHP警告:未知:輸入變量超過1000.要在php.ini中增加限制更改max_input_vars。在未知在線0,引用者:https://mywebsite.com/index.php

的事情是,我的形式不具有近1000個輸入變量,所以我百思不得其解,爲什麼這個正在出現。作爲一個方面說明,直到最近我還沒有遇到這個問題,並且我懷疑當我跑yum update改變/安裝了導致這個問題的東西。任何意見或答覆表示讚賞。

編輯1: 所以我做了var_dump($_REQUEST)並得到了〜1000個單字符串。數組中的第一對項目是它們應該是的,但是那些我不需要提交的東西被分解成單個字符串。思想歡迎。

array(1001) { 
    ["action"]=> string(10) "step1_show" 
    ["submit"]=> string(6) "Step 1" 
    [0]=> string(1) "a" 
    [1]=> string(1) "c" 
    [2]=> string(1) "t" 
    [3]=> string(1) "i" 
    [4]=> string(1) "o" 
    [5]=> string(1) "n" 
    [6]=> string(1) "=" 
    [7]=> string(1) "l" 
    [8]=> string(1) "o" 
    [9]=> string(1) "g" 
    [10]=> string(1) "o" 
    [11]=> string(1) "u" 
    [12]=> string(1) "t" 
    [13]=> string(1) "&" 
    [14]=> string(1) "p" 
    [15]=> string(1) "r" 
    [16]=> string(1) "o" 
    [17]=> string(1) "p" 
    [18]=> string(1) "e" 
    [19]=> string(1) "r" 
    [20]=> string(1) "t" 
    [21]=> string(1) "y" 
    [22]=> string(1) "=" 
    [23]=> string(1) "3" 
    [24]=> string(1) "7" 
    [25]=> .....  

答案:它結束了與我提交處理的一個問題。非常感謝您的意見。

+2

我們需要查看您的表單才能提供幫助。 – DanRedux 2012-03-12 19:58:20

+4

嘗試'var_dump($ _ REQUEST)'。 – Travesty3 2012-03-12 19:58:45

+1

此功能是在PHP 5.3中引入的。你可以展示你的表單嗎?如上所示 – 2012-03-12 19:59:10

回答

41

這是PHP中的一個新設置/值(與防止攻擊PHP腳本的安全更新有關),因此您在更新後得到此更新(在PHP 5.3.9未設置/可用之前,suhosin用戶有類似的事情自從很久以前)。

輸入值是不同類型的,數組成員也是一樣。因此,計算表單字段還不夠,還需要查看與輸入相關的URL和其他地方($_GET,$_POST,$_SERVER,$_ENV,$_FILES,$_COOKIE ...)。

max_input_vars

多少input variables可以被接受。該指令的使用減輕了使用散列衝突的拒絕服務攻擊的可能性。如果輸入變量的數量超過此指令指定的數量,則發出E_WARNING,並且會從請求中截斷更多輸入變量。此限制僅適用於多維輸入數組的每個嵌套級別。

+0

明白了。看起來問題是我將項目發佈到與特定表單無關的服務器。看着螢火蟲的帖子請求@Darhazer顯示了一些問題。謝謝 – Jon 2012-03-12 21:24:01

+0

通過PHP升級的質量控制 - 搞笑;)很高興你找到了罪魁禍首。 – hakre 2012-03-12 22:14:48

-5

我使用.ajaxSubmit()時,有同樣的問題

當序列化的形式,使用.serializeObject()而不是.serialize()

您可以從here

搶庫
+0

錯誤的語言? – 472084 2016-05-11 09:45:06

-1

我通過我的虛擬主機管理面板(Littleoak)修復了max_input_vars問題 我將max_input_vars = 0更改爲max_input_vars = 6000。 服務器公司配置的服務器上有幾個PHP安裝。我相信max_input_vars = 0是爲了防止垃圾郵件發送者使用服務器發送垃圾郵件。 php.ini文件居住在某個地方,不知道在哪裏,但我可以通過我的網站管理員的cPanel進行修改。