在运行相当活跃的网站的服务器上弹出一个奇怪的错误。
在使用多部分表单时,偶然会在$ _POST
中缺少从textarea发送的数据我们知道数据已发送,因为content_length显示超过1K的合理大小
正确接收表单中的所有其他输入字段。
它不是特定于浏览器的,而是发生在IE / Firefox / Chrome上。
近99%的时间工作,每100个帖子平均只失1或2次。
在非常罕见的情况下,我们已经能够自己重现它,因此我们知道数据正在发送,而不是由apache / php处理
所有这些设置都经过检查并且合理 在php.ini中:
memory_limit
max_input_time
upload_max_file_size
post_max_filesize
httpd.conf中的
LimitRequestBody
TimeOut
很想听到其他想法可能是什么。 我找不到任何已知的PHP相关错误。
答案 0 :(得分:2)
不确定这是问题(不是一个容易猜到的问题^^),但是如果您有suhoshin安全补丁/扩展,那么您是否尝试取消激活它?
(我不知道它是否在CentOS上默认激活,但它可能是,考虑到它是在Ubuntu上,这是“不那么重要的企业”)
我建议这是因为this bug report,其中有几个注释,例如:
[2007年10月30日上午11:02 UTC] sbauer at gjl-network dot net
在遇到这个问题时,我们也是如此 发现这个问题的原因 是suhosin补丁,是 - 通过 默认 - 配置为具有最大值 限制cookie的长度, 请求,发布,获取和会话变量。 例如。对于POST,这看起来像:
suhosin.post.max_array_depth 100 100 suhosin.post.max_array_index_length 64 64 suhosin.post.max_name_length 64 64 suhosin.post.max_totalname_length
256 256 suhosin.post.max_value_length 65000 65000 suhosin.post.max_vars
200 200这些衍生品需要设置为a 足够多的数字。例如。在我们的 案例,问题是,我们的POST 数据太长了(因为这似乎是 很多人在这里的情况。)
所以我建议检查你的php.ini或 (根据你在那里的分布 通常是suhosin.ini)并且正确 以上值或将它们设置为0到 禁用它。如果那些衍生物是 未设置,将使用默认值。 你需要检查/添加: suhosin.post.max _.... suhosin.request.max _... suhosin.get.max _... suhosin.session.max _... suhosin.cookie.max _...
请参阅您的phpinfo() 应该列出值!
和/或:
[2008年11月13日下午4:58 UTC]基思 tdrnetworks dot com
关于 enctype =“multipart / form-data”没有 填充$ _POST vars我发现了我的 解决方案是禁用Suhosin 安全模块。
快走!
还有一条说明:
[2月5日下午6:49 UTC] neal dot pressley 在yahoo dot com
我遇到了同样的问题。我曾有一个 用PHP脚本的html表单 提交单选按钮或 复选框。当我发布表单时,PHP 没找到任何帖子参数。 它是随机的,有时是 工作,有些时间没有。甚至我 尝试使用Get,它工作了一段时间 还有一段时间没有。然后我改变了 ENCTYPE从大写到小写 并且它开始完美地工作
您的表单/页面是否有效?也许,在一些罕见的情况下,它不是吗?
也许这会有所帮助......如果没有,我很想知道这个问题的原因!