我的网络服务器上突然出现一个奇怪的问题。我将表单发布到PHP并且有一定数量的输入,$ _POST数组为空,似乎输入流未完全读取。
<?php
var_dump(file_get_contents("php://input"));
print_r($_POST);
?>
<html>
<body>
<form action="form.php" method="POST" enctype="multipart/form-data">
<input type="text" name="blub" value="12345">
<input type="text" name="foo" value="abc">
<input type="text" name="blub1" value="12345">
<input type="text" name="foo1" value="abc">
<input type="text" name="blub2" value="12345">
<input type="text" name="foo2" value="abc">
<input type="text" name="blub3" value="12345">
<input type="text" name="foo3" value="abc">
<input type="text" name="blub4" value="12345">
<input type="text" name="foo4" value="abc">
<input type="text" name="blub5" value="12345">
<input type="text" name="foo5" value="abc">
<input type="text" name="blub6" value="12345">
<input type="text" name="foo6" value="abc">
<input type="submit">
</form>
<form action="form.php" method="POST" enctype="multipart/form-data">
<input type="text" name="blub" value="12345">
<input type="text" name="foo" value="abc">
<input type="text" name="blub1" value="12345">
<input type="text" name="foo1" value="abc">
<input type="text" name="blub2" value="12345">
<input type="text" name="foo2" value="abc">
<input type="text" name="blub3" value="12345">
<input type="text" name="foo3" value="abc">
<input type="text" name="blub4" value="12345">
<input type="text" name="foo4" value="abc">
<input type="text" name="blub5" value="12345">
<input type="text" name="foo5" value="abc">
<input type="text" name="blub6" value="12345">
<input type="text" name="foo6" value="abc">
<input type="text" name="blub7" value="12345">
<input type="text" name="foo7" value="abc">
<input type="submit">
</form>
</body>
</html>
第一种形式正常工作,第二种形式打破了以下输出:
string(118) "daryIaQvu0q5CBO86f9U Content-Disposition: form-data; name="foo7" abc ------WebKitFormBoundaryIaQvu0q5CBO86f9U-- " Array ( )
我不知道代码有任何变化,因此可能会发生一些PHP更新或类似的更新。
我检查了很多设置,phpinfo设置如下:
Directive Local Value Master Value
always_populate_raw_post_data Off Off
auto_append_file no value no value
auto_prepend_file no value no value
enable_post_data_reading On On
file_uploads On On
max_execution_time 60 60
max_file_uploads 20 20
max_input_nesting_level 200 200
max_input_time 60 60
max_input_vars 1000 1000
memory_limit 128M 128M
output_buffering 4096 4096
output_handler no value no value
post_max_size 128M 128M
upload_max_filesize 128M 128M
variables_order GPCS GPCS
有什么建议要检查吗?似乎只能读取固定数量的输入流,因为更改提交值的长度会更改输入流的截断部分。
答案 0 :(得分:0)
string(118) "daryIaQvu0q5CBO86f9U Content-Disposition: form-data; name="foo7" abc ------WebKitFormBoundaryIaQvu0q5CBO86f9U-- " Array ( )
这是问题所在。看看你的报价,有些正在结束,有些则没有。引号内有引号?!?
答案 1 :(得分:0)
我无法弄清楚问题是什么。将站点移动到新服务器可以解决问题。谢谢,对不起,我无法发布真正的解决方案。