PHP 警告:未知:输入变量超过 1000

2022-08-30 17:41:02

当一个POST数据从我的页面上的表单到我的服务器时,我收到一个新的php警告。警告如下所示:

PHP 警告:未知:输入变量超过 1000。要增加 php 中的限制更改max_input_vars.ini。在第 0 行的“未知”中,引用站点:https://mywebsite.com/index.php

问题是我的表单没有近1000个输入变量,所以我对为什么会出现这种情况感到困惑。作为旁注,我直到最近才遇到这个问题,我怀疑当我运行时,某些更改/安装的东西导致了这个问题。任何建议或答案都值得赞赏。yum update

编辑1:所以我做了,得到了大约1000个单字符字符串。数组中的前几个项目是它们应该是什么,但是我不需要提交的一堆东西被分解成单个字符串。欢迎提出想法。var_dump($_REQUEST)

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]=> .....     

:这最终成为我的提交处理程序的问题。谢谢大家的输入。


答案 1

这是PHP中的新设置/值(与安全更新相关,以防止对PHP脚本的攻击),因此您在更新后会得到此设置/值(在PHP 5.3.9未设置/可用之前,suhosin用户自古以来就有类似的东西)。

输入值具有不同的种类,数组成员也计数。因此,仅仅计算表单字段是不够的,还要查看URL和与输入相关的其他位置(,,,,...)。$_GET$_POST$_SERVER$_ENV$_FILES$_COOKIE

请参阅max_input_vars

可以接受多少个输入变量。使用此指令可降低使用哈希冲突的拒绝服务攻击的可能性。如果输入变量数多于此指令指定的输入变量数,则发出 an,并且还会从请求中截断其他输入变量。此限制仅适用于多维输入数组的每个嵌套级别。E_WARNING


答案 2

有两种方法可以解决这个问题。

.htaccess

php_value max_input_vars 10000

菲律宾比索

ini_set('max_input_vars','10000' );

推荐