当我在我的wordpress插件中使用include()时会发出如下错误。
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/wordpress3/wp-content/plugins/new/listAllItems.php:10) in /var/www/wordpress3/wp-content/themes/thesis_16/lib/functions/document.php on line 3
listallitems.php的第10行说
`
include_once("../../../wp-config.php");
include_once("../../../wp-load.php");
....`
如何避免此错误。
答案 0 :(得分:1)
如前所述,这是由于在session_start()语句之前已经发送到浏览器的一些文本。检查脚本中是否包含空格/字符,或者是否包含其中一个脚本。
这也可能是编码问题,即您的文件使用BOM编码为UTF-8,但您的网络服务器是在另一个字符集中配置的,因此BOM被视为额外字符(但这个问题确实得到了很多回答)次)。
答案 1 :(得分:1)
这只是一个快速解决方案,而不是正确的解决方案。
在命令前放置一个“@”符号,如下所示......
@session_start();
这将抑制任何警告或错误。您可以使用任何PHP命令执行此操作。但是一般来说这不是一个好主意,因为你只是在这个问题上放了一个创可贴,而没有解决根本原因,在你的情况下,在输出到缓冲区之后会调用session_start()
答案 2 :(得分:1)
我刚刚在我的剧本中添加了:
if(!session_start()){
session_start();
}
所有警告都消失了。
答案 3 :(得分:0)
通常在会话启动功能之前有输出时会出现此错误。有时甚至是空格或小字符,文件编码问题。