【发布时间】:2013-03-18 15:57:59
【问题描述】:
我在提交多个表单时遇到了一点问题:
我正在尝试提交更多的$_POST-variables,但是,我的服务器端脚本在总共提交 271 个表单变量后结束(或只是崩溃)。
在 localhost 上尝试,一切正常,没有任何问题。 在这里,总共提交了 771 个 post 变量。
到目前为止,我还进行了一些研究,试图弄清楚我可以更改哪些变量来配置更大的数据范围或类似的东西。
这是我的服务器配置:
max_execution_time 30 30
max_input_nesting_level 64 64
max_input_time 60 60
max_input_vars 1000 1000
memory_limit 256M 256M
post_max_size 8M 8M
本地主机配置:
max_execution_time 30 30
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time 60 60
max_input_vars 1000 1000
memory_limit 256M 256M
post_max_size 8M 8M
如您所见,这是相同的配置... 我的服务器上还安装了 suhosin - extension,默认配置。我对这个扩展不太熟悉,但是使用默认值应该会产生这种影响(我猜:))
服务器-PHP 版本:5.3.9
本地:5.3.17
问题和这个one很相似。
我已经尝试解决这个问题好几个星期了,如果你有任何想法的话.. 那就太好了;)
谢谢:)
更新:
如果我使用这种方法 (thanks):
$pairs = explode("&", file_get_contents("php://input"));
$vars = array();
foreach ($pairs as $pair) {
$nv = explode("=", $pair);
$name = urldecode($nv[0]);
$value = urldecode($nv[1]);
$vars[$name] = $value;
}
print_r($vars);
我看到了我之前显示的所有表单变量和内容。但是,使用
直接访问 $_POST 变量isset($_POST['LanguageContentForm']
并将其保存到变量中不起作用..:/
【问题讨论】:
-
对于
localhost,POST请求将传输得更快,因此它可能不会达到 max_execution_time。如果您将localhost上的 max_execution_time 降低到非常小的值,您可以在本地重现问题吗?同样,如果您增加远程服务器上的值,问题仍然存在吗? -
你能检查一下 apache 日志文件,是否记录了任何错误?
-
这可能会影响到你:phpclasses.org/blog/post/… 你不能只更新服务器 PHP 版本吗?
-
@andyb 减少 max_execution_time 的值没有任何效果...:/
标签: php forms post submit php-ini