假设我收到了HTTP请求。我尝试访问它,但由于它有大量的数据,PHP的max_input_vars
指令有效地从请求中删除了一些参数:当我尝试使用例如访问请求时$_REQUEST
,缺少部分数据。 我怎么知道这种情况何时发生?
对于某些背景:
我知道我可以获得count($_REQUEST)
并将其与ini_get('max_input_vars')
返回的值进行比较,但我想编写万无一失的代码,我可以检测到甚至超过限制。这种方法的另一个缺点是,当传递列表等时,每个列表元素变成一个单独的请求参数,该参数计入限制,但PHP再次将它们解析为单个数组。例如,list = [1, 2, 3]
之类的内容在请求中以类似的方式传递:
list[]=1
list[]=2
list[]=3
在PHP将其解析为$_REQUEST
之后,它再次成为单个数组(即$_REQUEST['list']
),这会导致count($_REQUEST)
不返回所需的值。可以解决这个问题,但这不是最方便的事情。
答案 0 :(得分:0)
http://php.net/manual/en/info.configuration.php#ini.max-input-vars
如果输入变量多于此指令指定的输入变量,则会发出
E_WARNING
...