今天我遇到了PHP _POST数组的奇怪行为。提交名为多维数组PHP支持的表单字段时,POST仅填充数组中的第一个值。在PHP 5.3.8(SLES 11 SP2)上找到了这个。相同的代码在我可以访问的所有其他系统上正常工作,包括PHP 5.2,5.3.18和5.4。这是一个测试用例:
<form method="POST" action="test.php">
<input type="text" name="single" value="sss"/><br>
<input type="text" name="multi[a]" value="AAA"/><br>
<input type="text" name="multi[b]" value="BBB"/><br>
<input type="text" name="single2" value="CCC"/><br>
<input type="submit">
</form>
<?php
$raw_post = file_get_contents('php://input');
print $raw_post;
phpinfo(INFO_VARIABLES);
提交后,我在原始数据中得到以下内容:
single=sss&multi%5Ba%5D=AAA&multi%5Bb%5D=BBB&single2=CCC
但$ _POST数组仅使用&#34;第一个值#34; $ _POST [&#39; multi&#39;]提供:
Array
(
[a] => AAA
)
有人知道为什么会这样吗?