【问题标题】:Last fields are lost in POST最后一个字段在 POST 中丢失
【发布时间】:2015-11-25 17:03:11
【问题描述】:

我正在扩展一个 Web 应用程序,该应用程序具有一个带有列表字段的表单。但是这个列表可以拥有许多用户想要的价值。

最后一个字段是CSRF Token

{{ form_widget(form._token) }}

测试我发现当我添加尽可能多的字段时,我可以在表单中出现一个 CSRF 错误:

CSRF 令牌无效。请尝试重新提交表单。

问题是表单中的信息太大,Symfony控制器会中继信息,并且不解析POST请求的final。如果我颠倒顺序并将最后一个字段设置为列表,则列表将不会完整发送。

我的问题:

  • 这是 HTTP 协议的限制吗?
  • 如果yes,有没有很好的解决方案来处理这个限制?

【问题讨论】:

    标签: php symfony http post symfony-forms


    【解决方案1】:

    这可能是 PHP 中的 max_input_vars 设置,而不是截断您发布的数据的 Symfony。

    可以发一下phpinfo();的内容吗?

    通常,您可以在 php.ini 文件中为每个虚拟主机或服务器范围覆盖此 PHP 配置设置。

    【讨论】:

    • php.ini中没有设置该字段,只有默认注释max_input_vars
    • 默认是1000,可能是这个问题。
    • @Victor - 糟糕,编辑了我的帖子以反映正确的配置设置。这为你解决了吗?
    • 是的!但对我来说坏消息是我应该为这个列表设置一个限制。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 2014-11-26
    • 1970-01-01
    • 2012-08-06
    相关资源
    最近更新 更多