我正在使用带有Apache 2.0的PHP 5.3.8。 我还在使用Symfony 2,但脚本失败的地方不是那里。 我有一个包含数组变量的表单:
在app_dev.php文件中(排除Symfony的问题),我直接执行以下操作:
基本上它只保留数组中的第一个变量。如果我将变量名称从po [role]更改为ba [role],那么$ _POST输出:
这些值似乎合理,我认为不会引起问题,但不能百分之百确定。
我没有安装suhosin,因为我读到它也可能导致类似的问题。
这也类似于this problem,但给出的解决方案需要我重写HttpFoundation Symfony组件。
此外,我不想在没有数组的情况下重新编写表单变量(例如po[name]到po_name),因为Symfony自动生成表单,而这似乎是PHP应该能够处理的基本功能。
有人对这个问题有什么想法吗?
PS:这与here中描述的问题类似。此外,该问题发生在相同版本的Suse上(SUSE Linux Enterprise Server 11)。
<form action="/app_dev.php/admin/position/create" method="post">
<input type="text" id="po_name" name="po[name]" required="required" maxlength="50">
<input type="text" id="po_role" name="po[role]" required="required" maxlength="20">
</form>
在app_dev.php文件中(排除Symfony的问题),我直接执行以下操作:
echo file_get_contents("php://input"); // outputs: po%5Bname%5D=Developer&po%5Brole%5D=ROLE_USER
var_dump($_POST); // outputs: array(1) { ["po"]=> array(1) { ["name"]=> string(9) "Developer" } }
die();
基本上它只保留数组中的第一个变量。如果我将变量名称从po [role]更改为ba [role],那么$ _POST输出:
array(1) {
["po"]=> array(1) { ["name"]=> string(9) "Developer" },
["ba"]=> array(1) { ["role"]=> string(9) "ROLE_USER" }
}
我发现导致此问题的典型问题是由于以下php.ini配置,我还提供了我的值:
max_execution_time = 30
max_input_time = 60
max_input_nesting_level = 64
max_input_vars = 1000
post_max_size = 8M
upload_max_filesize = 2M
memory_limit = 128M
这些值似乎合理,我认为不会引起问题,但不能百分之百确定。
我没有安装suhosin,因为我读到它也可能导致类似的问题。
这也类似于this problem,但给出的解决方案需要我重写HttpFoundation Symfony组件。
此外,我不想在没有数组的情况下重新编写表单变量(例如po[name]到po_name),因为Symfony自动生成表单,而这似乎是PHP应该能够处理的基本功能。
有人对这个问题有什么想法吗?
PS:这与here中描述的问题类似。此外,该问题发生在相同版本的Suse上(SUSE Linux Enterprise Server 11)。
po[name] 和 po[role]
- Mr. Alien它返回数组(1) { ["po"]=> array(1) { ["name"]=> string(9) "Developer" } }
- Sylvain