【问题标题】:HTML & PHP input[] <- array ? LimitationsHTML & PHP 输入[] <- 数组?限制
【发布时间】:2011-10-01 04:21:06
【问题描述】:

当您添加另一个应具有相似名称的 input 时,更多的是有人可以证实我的理论,至于走捷径。 myvar_0myvar_1 你应该使用javascript 来生成inputs,但是有input "array" type,你可以在其中创建一个名为myvar[]myvar[]myvar[]input 和这充当array 并通过post 将值作为array 传递给PHP,但最近我发现由于某种奇怪的原因,这array 具有197 values 的限制(或196 是最大能力索引值)现在在chrome 上(没有在其他浏览器上发短信)。

那么有没有其他人遇到过类似的问题?

【问题讨论】:

  • 使用 GET 还是 POST? GET 请求有一个最大查询限制——这可能是问题所在,而不是特定于 [] 的问题。
  • 使用 GET 时你的 url 的长度是多少?也许这可以帮助:boutell.com/newfaq/misc/urllength.html
  • @shane 他做到了,好地方。

标签: php javascript html arrays


【解决方案1】:

如果您使用的是suhosin,则会限制通过 POST 发送的max_vars
默认设置为 200,所以可能是您的问题。

见:suhosin.post.max_vars

【讨论】:

    【解决方案2】:

    数组格式与 html 或浏览器无关,对于浏览器方括号并不意味着任何特殊的东西,它将发送所有与 opt[] e.x 具有相同键的键、值对

    <input type="hidden name="opt[]" value="1"/>
    <input type="hidden name="opt[]" value="2"/>
    <input type="hidden name="opt[]" value="3"/>
    

    浏览器会发送

    opt[]=1
    opt[] =2
    opt[]=3
    

    作为对服务器的请求;

    它的 PHP 足够聪明,可以将其解释为名称为 "opt" 的索引数组。

    【讨论】:

    • @Bamboo - 您错过了答案的全部要点:它根本不是浏览器功能。这是一个服务器端 (PHP) 功能。
    【解决方案3】:

    我刚刚做了一个简单的测试(见下文),它在一个帖子数组中返回(对我而言)200 个项目。

    <form method="post">
    <?php
    
    print count($_POST['opt']);
    
    for($i = 0; $i < 200; $i++){
    ?><input type="hidden" name="opt[]" value="1" /><?php
    }
    
    ?>
    <input type="submit" />
    </form>
    

    我觉得这更多是关于正在发送的数据或服务器本身,而不是 PHP 的限制。

    【讨论】:

    • 刚刚用 20000 个元素测试过,还可以。
    【解决方案4】:

    答案是 Suhoshin 安全模块,经过一些研究,我发现实际上 max_post_vars 设置为 200,这有点阻止处理其余数据,感谢您的所有回答 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 2013-12-09
      • 2015-10-15
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      相关资源
      最近更新 更多