【问题标题】:Cannot post hidden input after update PHP 5.3.8 to PHP 5.3.24将 PHP 5.3.8 更新到 PHP 5.3.24 后无法发布隐藏输入
【发布时间】:2013-04-23 09:26:58
【问题描述】:

我将我的 PHP v5.3.8 升级到 v5.3.24。 由于更新我的脚本不再有效。

输入变量 POST 是问题所在。

在此处填写源代码:http://pastebin.com/N4XKSQjR

行问题如下(最后一行):

<input type="hidden" name="count_result" value="416">

在我的 PHP 处理表单页面 (traitement.php) 上,我像这样恢复这个字段:

 $count_result = $_POST['count_result'];

我得到这个 php 错误:

注意:未定义索引count_result上线...

该脚本在 PHP 5.3.8 上没有问题,但在 PHP 5.3.24 上没有问题。

谁能帮帮我?

谢谢

【问题讨论】:

  • pastbeans 的链接看起来已经死了,你能更新一下吗?
  • 我们在检查 isset($_POST 吗?
  • 其他隐藏字段是否正常?
  • Pastebin 为我工作... isset($_POST['count_number']) 返回 false。我正确地获得了第一个隐藏字段而没有问题。问题只是最后一个隐藏的输入。
  • 这真的不应该重要,但是您是否尝试过将 hidden 字段与其他字段一起移到顶部?

标签: php post input hidden


【解决方案1】:

我能够找到的唯一解决方案,并且基于我在尝试复制问题时遇到的错误。请注意,我在 PHP 5.4.x
上对此进行了测试 错误:

警告:未知:输入变量超过 1000

在我的php.ini 行:

; max_input_vars = 1000

已被注释掉 - 这意味着它默认为 1000Prior to 5.3.9这不是一个选项,因此您没有遇到问题,并且是无限的^^。 PHP >=5.3.9 默认为1000,所以为了让你的脚本兼容这么多输入,你需要在PHP中设置那个指令。我将它设置为 2000 并且效果很好。

由于你复制了旧的 php.ini,它可能不会存在,所以添加:

max_input_vars = 2000

在那里的某个地方,它至少适用于您当前的示例。 ^^

【讨论】:

  • 是的,这适用于max_input_vars = 2000,但输入变量少于 1000 否?为什么我没有像你这样的错误?我的错误报告是:error_reporting = E_ALL | E_STRICT
  • 这很有趣。不知道为什么你没有得到那个错误。 O.o 您在 HTML 中创建的每个数组都有 51 个条目。这 51 个中的每一个也都计入限制,因此,例如 ACT_CODE 计为该限制的 51 个输入。 ^^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 2018-11-09
  • 1970-01-01
相关资源
最近更新 更多