CakePHP应用程序中已发送标题错误

CakePHP应用程序中已发送标题错误,php,cakephp,header,Php,Cakephp,Header,即使我得到这个错误,$this->数据仍然正确地保存在数据库中。但是,如果我对重定向行进行如上所示的注释,则一切正常且无错误我已经检查了标签周围的空格,所以我很确定不是这样。 有什么想法吗 编辑: 注释掉setFlash语句并不能解决问题。我假设setFlash会向浏览器输出一些东西 如果标记前后的空白不是您的问题,您可能必须尝试为setFlash()的“layout”参数传递“null” i、 e 此代码将某些内容输出到浏览器,或者在文件(或任何其他包含的文件)末尾的?>后面有一个空格。空白被

即使我得到这个错误,$this->数据仍然正确地保存在数据库中。但是,如果我对重定向行进行如上所示的注释,则一切正常且无错误我已经检查了标签周围的空格,所以我很确定不是这样。

有什么想法吗

编辑:
注释掉setFlash语句并不能解决问题。

我假设setFlash会向浏览器输出一些东西

如果标记前后的空白不是您的问题,您可能必须尝试为setFlash()的“layout”参数传递“null”

i、 e


此代码将某些内容输出到浏览器,或者在文件(或任何其他包含的文件)末尾的
?>
后面有一个空格。空白被发送给用户,从而发送http头。

是否有您没有向我们显示的调试语句?

您可能在某个地方遇到了一个不可见的字符。检查文本编辑器的设置,看它是否使用BOM表保存文件。

将调试模式更改为0,以确保在重定向之前不会生成通知/警告。此外,您可能希望收紧处理部分,以(偏执地)确保它没有使用无效索引,以及整个应用程序流中的任何其他位置来执行该操作,以确保您没有得到任何输出(如果在将debug更改为0时工作)。

我会检查模型中的空白。他们中的任何一个。这是我遇到的一个难题。

是的,它只是在下一页加载时闪烁一条消息(在本例中为$flasher)。如果您注释掉setFlash,然后重定向它是否有效?答案更新为可能的解决方案。如果我注释掉setFlash,它仍然会执行相同的操作。那么它可能超出了我们可以看到的代码范围。您可能有一个不可见的字符(尝试将PHP标记中的代码复制到带有新PHP标记的新文件中,并使用新的文本编辑器),或者您正在调用另一个发送文本或标题的函数。您是否尝试重定向到另一个操作?为什么不删除“sc”后面的逗号?逗号是问题之一。实际上我有一个打印($this->Session->read('CurrUser.username');打印($this->Session->read('CurrShowcase.id');在导致一些问题的if语句之前。
            function new_photo()
            {

                if( !empty($this->data))
                {
                        $this->data['Photo']['showcase_id'] = $this->Session->read('CurrShowcase.id');
                        $this->data['Photo']['added'] = date("Y-m-d H:i:s");
                        $this->Showcase->Photo->save($this->data);

                        $flasher = 'Photo uploaded successfully';
                        $flasher .= '<br/><img src="' . $this->data['Photo']['thumbnail_url'] . '"/>';
                        $this->Session->setFlash($flasher);
                        //$this->redirect(array('action'=>'sc',));
                }
            }   
Warning (2): Cannot modify header information - headers already
sent by (output started at D:\.....
$this->Session->setFlash($flasher, null);