我怎么知道我是否超过了最大请求参数?

时间:2018-06-01 14:26:31

标签: php

假设我收到了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)不返回所需的值。可以解决这个问题,但这不是最方便的事情。

1 个答案:

答案 0 :(得分:0)

http://php.net/manual/en/info.configuration.php#ini.max-input-vars

  

如果输入变量多于此指令指定的输入变量,则会发出E_WARNING ...