【发布时间】:2011-12-25 04:40:34
【问题描述】:
我有表格:
<form method='post' action='script.php'>
<textarea id='main' name='text'></textarea>
<input type='hidden' name='id' value='1'>
<input type='hidden' name='a' value='ulozitclanek'>
<input type='submit' name='button' value='Save'>
</form>
如果我在 textarea 中输入短文本并提交,那么在 script.php 中,我已经在变量 $_POST['text'] 中拥有了我的文本。但是,如果文本的长度约为 70000 个字符,则它不在 $_POST['text'] 中。我可以从 Firebug 看到网络日志,我的文本是编码字符串,它是由我的浏览器发送到服务器的。但在$_POST 数组中,我的文字不见了。
我只在生产服务器上遇到这个问题,当我在本地主机上测试这个脚本时,它也适用于长文本。
是否有任何服务器选项可以限制 post 值的 maxlen?
在PHPinfo中可以看到post_max_size设置为20M,肯定还有问题,但是我自己解决不了:-(
有什么想法吗?
坦克。
【问题讨论】:
-
你有足够的内存吗?检查您的服务器日志。那里总是有 PHP 通知消息,在这种情况下它可能会有所帮助
-
可能是文本中某处的特殊字符,或者是未转义的引号破坏了内容。
-
我尝试发布 70000 个字符“a”,但问题仍然存在。我不知道服务器硬件。但是脚本正常运行(它使用我发送的 ID 将空文本保存到数据库中......) - 我不这么认为,这可能是由 RAM 引起的......我可以向托管支持发送电子邮件,但我不希望解决我的问题。
-
你如何测试这个?什么告诉你它正在工作?
-
当我在 $_POST['text'] 变量中找到我的文本时,它正在工作。这个问题只在生产服务器上,在我的本地主机上没问题,所以它必须在服务器的配置中?您可以在这里自己尝试:administrace.bmhd.cz/test.php 如果您发布短文本,它可以工作(文本将出现在 $_POST 数组中),如果是长文本,则不会。
标签: php forms apache post textarea