我在PHP和/或IIS中有一个非常奇怪的错误,我根本找不到。似乎我有一个帖子或数组变量嵌套限制,虽然我已经调整了所有我似乎相关的东西。我知道这个错误:
注意:未知:在未知中的系统临时目录中创建的文件,在线 警告:无法修改标头信息--已在未知中在线发送的标题
我有这样的设置:
我在我的源代码页面中所做的非常简单,我做的是,而不是,做任何文件处理,所以我应该不会在临时文件上传或类似的事情上有任何问题。它实际上也不应该尝试创建一个临时文件!?我所拥有的只是一个带有一些form字段的input,然后在目标页面上执行一个phpinfo() (用于调试工作)。
我有下面这个源PHP页面,它有一个静态的数据量。我输出100行,每一行中都有一个名为var的数组变量。此变量的静态值为12345678。
<?PHP
echo "<form action='postpage.php' method='POST'>";
echo "<input type='submit' /><br><br>";
for ($row = 0; $row < 100; $row++) {
for ($column = 0; $column < 9; $column++) {
echo "<input type='text' name='var[]' value='12345678' /> ";
}
echo "<br>";
}
echo "</form>";
?>我的postpage.php只有以下内容:
<?PHP
phpinfo();
?>但是,当我在表单上单击Submit时,就会得到如上所示的错误,而phpinfo() 没有显示任何POST或请求变量吗!?
有趣的是,当我将静态值从12345678更改为1234567时,一切都正常!另外,如果我调整变量名称和行或列的数量,那么我可以调整它,但我总是会遇到一些问题,因为我敢说的是数据量很小。
我相信会有PHP或IIS设置,但我已经尝试了我所知道的一切,这些是我现在拥有的设置:
PHP:
IIS (IIS > MyServer >请求筛选>查询字符串>编辑功能设置):
有人知道我能查到什么吗?
发布于 2020-03-30 14:31:31
经过更多的故障排除后,我发现了这个问题--,这是 upload_tmp_dir 在 php.ini中的一个错误目录。
虽然我在过去几年没有改变这个目录设置,并且我期望它能够工作,但是显然它没有。几周前,我确实将PHP从7.2.x更新到了新的7.2.x版本,但直到现在才遇到这个问题。
当我将目录更新到正确的上载目录时,突然出现了另一个错误:
警告:未知:输入变量超过1000。若要增加限制,请更改max_input_vars中的php.ini。在未知中在线中
我可以关联到这个错误,并将其更改为更高的值,然后所有操作都可以:-)
我可以看到,在PHP7.1中,坦南现在抛出一个Notice,所以我目前的猜测是,可能是一个cookie或类似的cookie正在使用这个方法,然后抛出一个通知,从而推翻另一个错误。
如果你有一个更好的答案,那么请提出我会接受的答案,因为我不是想问问题,而只是接受我自己的答案!
发布于 2021-01-26 23:30:14
在阅读了Beauvais的答案之后,我检查了设置、启用和读取的php.ini
upload_tmp_dir = G:\www\temp
我不知道目录'temp‘还没有在G:\www中创建
在创建目录并运行程序后,不会出现警告。
希望这对其他人有用。
https://stackoverflow.com/questions/60928715
复制相似问题