可以在运行时更改max_input_vars吗?

大型表单中的表单元素数量有问题.帖子中包含了一些元素.

经过一番搜索,我看到了:
$_POST max array size

$this->input->post('formelement') uses max_input_vars as limiter.

从上面的链接回答可以.我了解我必须在php.ini中使用max_input_vars.在本地可以,但是如果我的生产服务器的Web托管公司不允许我在其服务器上更改此设置-这是不可行的.

我正在使用codeIgniter并创建如下形式:

<?php        
$attributes = array('id' => 'id of form');
echo form_open('controller/function-name', $attributes);
//actual form content
echo form_close();
?>

进一步阅读后,我了解可以使用http:// input绕过此max_input_var限制.

我可以通过在controller / function-name中执行此操作来获取原始数据输出

$postdata = file_get_contents("php://input"); 

但是然后我将不得不手动检查csrf值等,填充后数据,正确展开等,等等.

我也在htaccess中尝试过此操作:(基于max_input_vars limited in PHP 5.2.17)

RewriteEngine On
RewriteBase /
php_value max_input_vars 6000
php_value suhosin.post.max_vars 6000
php_value suhosin.request.max_vars 6000
RewriteRule ^index\.php$- [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

但是网页无法访问,并且出现内部错误.

我尝试进行更改的服务器正在使用PHP 5.5.7-1 sury.org〜precise 1

是否可以在运行时更改max_input_vars(或者我在htaccess中做错了吗?)

解决方法:

不,无法在运行时进行更改.

这是因为在运行时输入已被处理.

因此,该设置要么已经导致错误,要么为时已晚.

手册中也对此进行了记录,因为它列出了可以更改ini指令的位置:

> Where a configuration setting may be set PHP DOCS

如果不确定所有更改PHP配置的地方在哪里以及如何使用它们,则该部分中还有另一页:

> How to change configuration settings PHP DOCS

上一篇:PHP-Codeigniter中的此数据库错误是什么


下一篇:php-Codeigniter HMVC模块和javascript文件