Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP最大输入变量_Php - Fatal编程技术网

PHP最大输入变量

PHP最大输入变量,php,Php,我收到一条max\u input\u vars错误消息 我知道有一个php.ini设置可以从版本5.3.9开始改变这一点,但是,我运行的是版本5.1.6 当我查看5.1.6服务器的配置信息时,它显示max\u input\u vars值为1000 我的问题是:尽管我运行的是5.1.6,但我在phpinfo()中看到了这个设置,但它不在php.ini文件中。这是否意味着该值在此版本的PHP中是硬编码的,不能更改?您可以将其添加到PHP.ini中,它应该可以工作-只需在PHP5.3.6上进行测试。是

我收到一条
max\u input\u vars
错误消息

我知道有一个
php.ini
设置可以从版本5.3.9开始改变这一点,但是,我运行的是版本5.1.6

当我查看5.1.6服务器的配置信息时,它显示
max\u input\u vars
值为1000


我的问题是:尽管我运行的是5.1.6,但我在
phpinfo()
中看到了这个设置,但它不在
php.ini
文件中。这是否意味着该值在此版本的PHP中是硬编码的,不能更改?

您可以将其添加到PHP.ini中,它应该可以工作-只需在PHP5.3.6上进行测试。

是的,将其添加到PHP.ini中,重新启动apache,它应该可以工作


如果您想使用
ini\u集(“max\u input\u vars”,100)

尝试使用5.3.3进行此修复,但没有任何更改,则可以动态测试它。在谷歌上搜索,我发现这个网页详细说明了如果服务器使用Debian下的Apache所使用的Suhosin补丁,则需要更改的其他设置

该网站解释说:

所以,如果你想把这个数字从默认值增加到3000 数字是1000,您必须在php.ini中输入以下行:

最大输入变量=3000 suhosin.post.max_vars=3000 suhosin.request.max_vars=3000

我测试了它(在/etc/php5/apache2和/etc/php5/cli中向php.ini添加了设置,并成功地重新启动了Apache),但phpinfo中仍然没有max_input_vars变量

一些网站指出,PHP 5.3.9是这一更改将采用的第一个PHP版本,因此我的错误是没有正确地进行RTM,尽管我有兴趣看到有人报告它在高于5.3.3但低于5.3.9的版本中工作。

参考PHP网上:

请注意,您不能在运行时使用函数
ini\u set(name,newValue)
设置此指令,例如

ini_set('max_input_vars', 3000);
这是行不通的

正如文档中所解释的,该指令只能在每个目录范围内设置,这意味着通过.htaccess文件、httpd.conf或.user.ini(从PHP5.3开始)

将该指令添加到php.ini或将以下行放入.htaccess将起作用:

php_value max_input_vars 3000
php_value suhosin.get.max_vars 3000
php_value suhosin.post.max_vars 3000
php_value suhosin.request.max_vars 3000

您需要取消对php.ini文件中的max_input_vars值的注释并增加它(exp.2000),同时不要忘记重新启动服务器,这将有助于99.99%。

使用此指令可以降低使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于此指令指定的数量,将发出E_警告,并从请求中截断更多的输入变量

我可以建议不要扩展默认值1000,而是通过序列化请求或按块发送请求来扩展应用程序功能。否则,您可以将其扩展到所需的配置


它肯定需要在php.ini中设置。请注意,您必须将其放在Centos7中的文件“.user.ini”中,而不是以前在Centos6中使用的“php.ini”。您可以将“.user.ini”放在任何子目录中,以便只影响该目录

.user.ini:

max_input_vars = 3000

在Centos7和PHP5.6.33上进行了测试。

现在是2018年了。当我必须发送一个超过
max\u input\u vars
的请求时,我遇到了这个问题。我提出了一个解决方案,像我这样的newie在更改
max\u input\u vars
param后忘记重新启动php fpm服务。因为我只尝试重新启动
apache2
服务,但没有重新启动php-fpm

  • /etc/php/7.0/fpm/php.ini处取消对代码的注释,并根据需要设置编号
    max\u input\u vars=4000
  • 重新启动php fpm服务,就像我使用PHP7一样。因此,
    sudo服务php7.0-fpm重启

  • 希望能有所帮助

    Debian Stretch
    php7.0
    新Cpanels块上测试以查看.htaccess文件,或者如果添加.user.ini,则无法查看它。但只要稍加修改,你就能让它工作。例如,编辑wp-config.php,并在URL栏中将wp-config.php替换为.htaccess 现在您可以粘贴值并保存它。

    php\u值最大\u输入\u变量6000


    “将这一行放在您站点的.htaccess文件上。”

    在向Wordpress添加菜单项时遇到同样的问题。我在Ubuntu 18.04和PHP7.0上使用Wordpress 4.9.9。我只是在
    /etc/php/7.0/apache2/php.ini

    ; How many GET/POST/COOKIE input variables may be accepted<br>
    max_input_vars = 1500
    
    希望有帮助

    “PHP消息:PHP警告:未知:输入变量超过1000。若要增加限制,请更改PHP.ini中的max_Input_vars。”

    这个php配置参数max_input_vars不仅会影响GET/POST/COOKIES参数,还会控制任何形式的输入

    要设置或更改其值,请执行以下步骤

    1) 通过在php.ini文件中查看来检查现有设置/值 使用查找php.ini文件

    找到以下键:加载的配置文件:/etc/php/5.6/fpm/php.ini

    2) 在可编辑模式下打开php.ini文件并搜索max_input_vars 该行可能会在您现有的默认设置中被注释,默认值为1000,因此请删除;若要取消注释该行,请使用合适的值(例如2500)对其进行编辑

    3) 使用以下命令保存文件并重新启动PHP服务
    sudo服务php5.6-fpm重启


    同样,您可以轻松地更新任何其他类似的PHP配置。

    只是为了补充。在使用mod_suphp的共享服务器上,我也遇到了同样的问题

    声明4个max_input_vars(包括suhosin)并没有解决这个问题,它只是不断截断1000个vars(默认值),并在.htaccess上声明“php_value max_input_vars 6000”抛出错误500

    解决这个问题的方法是在.htaccess上添加以下内容,它将php.ini文件递归地应用于该路径

    suPHP_ConfigPath /home/myuser/public_html
    

    在PHP5.1.6源代码中,我根本看不到对
    max\u input\u vars
    的任何引用,所以我不确定您是如何理解的
    suPHP_ConfigPath /home/myuser/public_html