我收到一条max_input_vars错误消息.
我知道有一个php.ini设置可以从版本5.3.9开始改变这个,但是,我正在运行版本5.1.6.
当我查看5.1.6服务器的配置信息时,它显示的max_input_vars值为1000.
我的问题是:即使我正在运行5.1.6,我也看到了这个设置,phpinfo()但它不在php.ini文件中.这是否意味着该值在此版本的PHP中是硬编码的,无法更改?
lub*_*sdz 96
PHP网上的参考:
http://php.net/manual/en/info.configuration.php#ini.max-input-vars
请注意,您不能在运行时使用函数设置此指令ini_set(name, newValue),例如
ini_set('max_input_vars', 3000);
Run Code Online (Sandbox Code Playgroud)
不起作用.
如文档中所述,该指令只能按目录范围设置,即通过.htaccess文件,httpd.conf或.user.ini(自PHP 5.3起).
请参见http://php.net/manual/en/configuration.changes.modes.php
将指令添加到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
Run Code Online (Sandbox Code Playgroud)
Nar*_*arf 45
你可以将它添加到php.ini,它应该工作 - 只是在PHP 5.3.6上测试它.
Vau*_*any 20
刚刚尝试使用5.3.3进行此修复,并且没有任何变化.谷歌搜索我发现这个网页http://anothersysadmin.wordpress.com/2012/02/16/php-5-3-max_input_vars-and-big-forms/详细说明了如果您的服务器使用Suhosin补丁需要更改的其他设置Debian下的哪个Apache.
该网站解释说:
所以,如果你想将这个数字从默认数字1000增加到3000,那么你必须在php.ini这些行中输入:
max_input_vars = 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.
nok*_*eng 11
现在是 2018 年。当我必须发送超过max_input_vars. 我想出了一个解决方案,像我这样的新手在更改max_input_vars参数后忘记重新启动 php fpm 服务。因为我只尝试重启apache2服务,而不是 php fpm
/etc/php/7.0/fpm/php.ini并根据需要设置数字max_input_vars = 4000sudo service php7.0-fpm restart希望它有助于
测试Debian Stretch,php7.0
小智 5
使用此指令可以降低使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于该指令指定的数量,则会发出 E_WARNING,并且会从请求中截断更多输入变量。
我建议不要扩展默认值 1000,并通过序列化请求或按块发送请求来扩展应用程序功能。否则,您可以将其扩展到所需的配置。
它肯定需要在 php.ini 中设置
| 归档时间: |
|
| 查看次数: |
304992 次 |
| 最近记录: |