500更新插件选项时出错

时间:2015-01-07 作者:pixeline

我正在调试一个插件用户系统上发生的奇怪问题。问题:当我提交插件的设置表单(option general.php?page=pluginname)时,我收到一条500错误消息。其他设置页面工作正常,只有这一个。

当我在新的wordpress副本上简单地使用插件时,我无法再现错误。我有他的wordpress数据库+主题和插件的本地副本,现在问题出现了。我取消了所有插件的激活(36!)并切换回默认的二十五主题。问题仍然存在。

Apache错误日志文件中告诉我:

"fastcgi: incomplete headers (0 bytes) received from server"
因此,我将PHP模式从“CGI”更改为“模块”。

现在,它完美地工作了,问题已经消失了。

然后我切换回CGI,然后。。。它仍然可以工作。

这里可能发生了什么?我担心不明白原因是什么,因为我的这个插件是开源的,将在许多不同的设置中运行。

2 个回复
最合适的回答,由SO网友:pixeline 整理而成

事实证明,这毕竟是一个bug:我的插件选项之一是一个文本字段,用户可以在其中指定消息。它提供了一个默认值,但该用户选择不包含任何消息,因此将其清空。它在后端看起来不错(字段看起来是空的),但当我查看数据库时,它已经变成了无数的“\\”符号!这造成了内存日志问题。

我觉得自己很愚蠢,忘了清理输入。我已经补好了。

SO网友:Rarst

500个错误可能有多种原因。在提交表单的上下文中,由于安全设置,它们更常见,通常mod_security. 它往往对表单提交/POST请求有严格的规则。

你真的无能为力。在过去的一个主机上,我需要请求支持人员禁用一些mod_security 规则,因为我甚至无法保存我的一些WordPress帖子。

结束

相关推荐

必须使用插件自动加载器:如何正确使用get_plugins()?

我的autoloader类负责加载必须使用的插件,这些插件不位于mu-plugins 文件夹要定位它们,我需要使用get_plugins() 作用According to Codex, 该函数接受一个参数:$plugin\\u folder(string)(可选):单个插件文件夹的相对路径。我的文件层次结构如下所示:|-- /mu-plugins | |-- autoload.php // only includes wpmu/autoload.php&#