1

我正在为 joomla 创建一个插件,它在我的本地 Windows 7 机器上使用 WAMP 按预期工作。但是当我将插件加载到生产服务器(Debian)中时,我收到了这个警告(并非总是如此):

Warning: Cannot modify header information - headers already sent by (output started at /httpdocs/plugins/system/fiuser.php:1) in /httpdocs/plugins/system/jat3/core/parameter.php on line 73

我尝试使用谷歌搜索,但实际上并没有帮助我解决问题。

<?php

defined('_JEXEC') or die('Restricted Access');

class plgSystemFiUser extends JPlugin {

    // Some functions

}

每当我从浏览器中删除浏览数据时,我都会收到此警告,然后问题一直存在,直到我关闭浏览器或转到另一个站点。

第73行,parameter.php的内容:

setcookie ($this->template.'_tpl', $this->template, $exp, '/');

我发现很难调试这个问题,因为我对 Joomla 和 PHP 没有太多经验,所以非常感谢任何帮助。

4

2 回答 2

0

header()方法有冲突,看看flush output buffer

PHP.net 输出缓冲区方法

于 2011-03-01T17:49:21.317 回答
0

删除 PHP 文件末尾的关闭 ?> 标记。它实际上没有任何用处,因为 PHP 解释器知道文件结束也意味着 PHP 结束。删除它意味着编辑器添加的任何额外空白字符都不会影响生成的输出,因此不会阻止发送额外的 HTTP 标头。

将 php.ini 上的 output_buffering 设置打开以永久消除此错误

于 2011-03-01T17:49:41.010 回答