大的textinput使http post失败

时间:2011-09-29 02:40:34

标签: html forms

我的应用程序中有一个表单,技术人员输入有关不同事件或所采取操作的信息(如更新服务器)。问题是这些输入可能非常冗长,然后我的表单停止工作。如果浏览器尝试发送数据,服务器会向浏览器返回302错误,但是当我尝试提交时,浏览器通常不会执行任何操作。当浏览器不执行任何操作时,Chrome开发者工具中的快速查看显示浏览器尝试将帖子执行到正确的路径,但状态列为失败。如果textarea包含超过3500个字符,则总会发生这种情况。我试图更改enctype以查看发生了什么,但它没有解决问题。

<form enctype="application/x-www-form-urlencoded" action="/some/path/" method="post" _lpchecked="1">
<fieldset>
    <input type="hidden" name="machineId" value="some_integer">
    <input type="hidden" name="eventId" value="some_integer">
    Titel:
    <select name="form[title]">
        <option>Some_option</option>
        <option>some_option</option>
    </select>

    <textarea name="form[text]" rows="25" cols="90"></textarea>
    <input type="submit" value="Spara" title="Spara">
</fieldset>
</form>

关于它为什么不起作用以及可以做什么的任何想法?

编辑: 我的应用程序基于PHP并在Debian / Apache上运行。我无法找到任何可能阻止帖子正常工作的设置。我的post_max_size设置为8MB,但3500个字符的文本不大于8MB所以......

2 个答案:

答案 0 :(得分:2)

通过POST的文字很可能不是1个字节/字符。 Apache mod_security可能正在过滤数据。它可能是影响后加密的任何其他数量的Apache mod。您可以查看mb_get_info()和其他mb_ *函数来验证PHP如何编码文本。如果您不想深入挖掘,可以从几个数据点做出有根据的猜测,即在POST中使用每个字符的字节数,并调整post_max_size以满足您的需求。 / p>

如果您无法在屏幕上打印错误,可以查看

tail -n 30 /var/log/apache2/error.log #prints last 30 lines of error.log

在您的白屏症状发生后立即获取有关脚本期间遇到的错误/警告/等的更详细信息。

另请注意post_max_sizememory_limit的限制......我不认为这是问题,但可能需要考虑另一位读者。

答案 1 :(得分:0)

您使用的服务器端语言是什么?也许你需要像Huffman Algorithm

这样的文本压缩