2011-09-13 61 views
0

我在笨的应用程序运行到这个问题:笨头()错误

A PHP Error was encountered 
Severity: Warning 
Message: Cannot modify header information - headers already sent by (output started at /application/controllers/training.php:1) 
Filename: libraries/Session.php 
Line Number: 671 

我已检查的空格,我不发送头。

出现此错误的唯一方法是当我更新视图和控制器文件时。

我的代码运行良好,直到我更新了一些文件,然后错误(上面)拒绝消失。

当我清除缓存并重新登录时,错误不会显示。

有谁知道为什么?

+2

training.php的第1行是什么? –

+0

另外,这个问题的标题是什么? – Cyclone

+0

@Cyclone Nothing ;-)(编辑它) – Bojangles

回答

2

可能是UTF-8 BOM标记吗?尝试保存training.php没有BOM(如果存在)

+0

我现在要尝试一下,但那有什么帮助?只是出于好奇,因为你必须认为这可能是一个原因。 –

+0

我想你解决了我的问题!我从来没有听说过物料清单,但后来我搜索它,并发现它可能会导致头已经发送! http://stackoverflow.com/questions/2558172/utf-8-bom-signature-in-php-files _“BOM会导致Headers已经发送错误,所以,你不能在PHP文件中使用BOM”_ - 现在我必须再次创建我的所有文件,该死的。 –

+0

这是一个常见问题......所以,你有没有尝试保存没有BOM的文件?这是否解决了你的问题? – Timur

0

我不确定它为什么会出现和消失,但是你在第一行发送的输出是/application/controllers/training.php,这意味着之后运行的任何脚本都不能修改标题。实质上,某些东西是以一种修改标题的方式调用CI的会话库,但标题已被发送。如果我们能够看到training.php的第一行,这会很有帮助。

0

我检查了空格,没有。我还没有使用会话,我只是将它设置为登录脚本中的会话变量。只有我使用它的地方。

training.php

<?php 

class Training extends CI_Controller 
{ 

    public function index() 
    { 
     $data['heading'] = 'Træning'; 
     $data['smallheading'] = 'Registre dine træningsture og hold styr på dem.'; 
     $this->load->view('header_view', $data); 
     $this->load->view('training_view'); 
     $this->load->view('footer_view'); 
    } 

} 

当中,仅有呼应PHP变量和HTML的不同意见。