【问题标题】:Issues transfering data between PHP pages with POST [duplicate]使用 POST 在 PHP 页面之间传输数据的问题 [重复]
【发布时间】:2014-12-03 04:33:03
【问题描述】:

我在使用 POST 在 PHP 中的页面之间传输值时遇到问题。我在页面底部使用隐藏字段来说明页面上有多少项目(学生行)。我还有一个过滤器选项,可以减少页面上可见的项目数量。当我从过滤页面提交数据时,所有值(包括隐藏的值)都可以通过,不用担心。当我在未过滤页面的情况下提交数据时,隐藏的值不会通过(因此我的数据收集不会发生)。

关键是,这不会发生在我基于 Apache 的测试环境中,它只会在我将它移动到基于 IIS 的生产环境时发生。

这是初始页面的屏幕截图(出于隐私原因,实际数据已被删除),其中显示了输入。有 12 行,每行 30 个输入(总共 360 个):

这是我需要的带有隐藏字段的 HTML 代码:

<input type="hidden" value="12" name="numStudents">
<input type="hidden" value="10" name="numTasks">
<input type="hidden" value="3" name="numCriteria">
<input class="btn btn-primary btn-large" type="submit" value="Save" name="submit">

这是接收值的 PHP 代码:

//Get the general information from the form
$numStudents = $common->clean($_POST["numStudents"], $CON);
$numTasks = $common->clean($_POST["numTasks"], $CON);
$numCriteria = $common->clean($_POST["numCriteria"], $CON);

//Loop to get grades for all students
$output = "";
$flagChange = FALSE;
$count = 0;
for($i = 0; $i < $numStudents; $i++)

当我直接回显 $numStudents 或 $_POST["numStudents"] 的值时,什么都不会出现。

真正令人困惑的是 - 当我有 1 或 2 个学生的列表时,未过滤的数据会毫无问题地通过(回显显示正确的值)。如前所述,如果我过滤数据以便每个学生只显示 6 列输入,则数据可以毫无问题地通过。

IIS 是否有 POST 变量中允许的最大值数量?如果是这样,这可以改变吗?我检查了我的 PHP.ini 文件,帖子的最大大小设置为 8M(这个数据甚至不应该接近)。

我需要更改其他设置吗?

【问题讨论】:

    标签: php html iis post


    【解决方案1】:

    可以发送的 POST 数据的最大大小是每个服务器的设置。对于 PHP/APACHE,它可以从 .htaccess 中设置为:

    #set max post size
    php_value post_max_size 20M
    

    在IIS下你要改maxAllowedContentLength

    见:http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits

    【讨论】:

    • 我的 maxAllowedContentLength 设置为 30,000,000 字节,应该绰绰有余。为了以防万一,我确实尝试将其更改为 60,000,000,但这并没有解决我的问题。您的回答确实对我有所帮助,因为它使我能够更有效地搜索查询。谢谢。
    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    相关资源
    最近更新 更多