问题描述
我正在开发 Wordpress 插件。当我激活我的插件,我得到一个消息
The plugin generated 293 characters of unexpected output during activation. If you notice 「headers already sent」 messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.
插件工作非常好,但我不知道为什么我得到这个消息。我的插件是:http://wordpress.org/extend/plugins/facebook-send-like-button/
最佳解决方案
我的猜测是你收到一个 PHP 错误,它会在头文件发送之前生成输出。如果启用了 E_NOTICE
,如果未设置该变量,则调用 $_POST['foo']
可能会生成 「Notice:undefined variable」 错误。
最佳实践:从不承担 GET,POST,COOKIE 和 REQUEST 变量的任何内容。始终使用 isset()
或 empty()
进行检查。
if ( isset( $_POST['foo'] ) ) {
$foo = (string) $_POST['foo'];
// apply more sanitizations here if needed
}
次佳解决方案
这通常是在打开<?php
标记之前或关闭?>
标记之后由空格或新行引起的。
查看此页面以查看一些解决方案:How do I solve the Headers already sent warning problem?
UPDATE
检查你的插件代码后,我注意到的一点是你没有关闭 PHP 标签。在最后一行,添加?>
第三种解决方案
我以前面临过同样的问题,对我来说这是一个额外的空白。当我删除所有这些空格后,插件可以激活,没有任何错误/警告。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。