书君 发表于 2009-8-3 23:37:12

请问这个问题怎么解决?

A PHP Error was encounteredSeverity: Warning
Message: Cannot modify header information -

Hex 发表于 2009-8-3 23:45:05

这个信息无法判断错误,需要更多错误消息。

blacktear23 发表于 2009-8-4 10:50:05

这类问题需要从HTTP协议入手了。HTTP协议分报头和内容,报头必须发送在http响应的最前面,之后跟着是响应的HTML内容。在运行一个简单的PHP页面的时候,如果不开缓存,PHP基本上会直接把HTML内容发送到客户端,但是一旦发送HTML页面的话,报头也就直接发送过去了。因此,报头如果已经发送了,那么再来改报头就会报错(因为已经发送,改了等于白改)。
楼主可以看看是不是有些地方在“<?php”之前已经发送了什么字符了,比如空行活空格之类的。
鄙人以前遇到这类问题,修改不了header,发现是在页面最开始空了一行,然后是<?php,后来把空行去掉就好了。

书君 发表于 2009-8-4 11:10:25

本帖最后由 书君 于 2009-8-4 11:11 编辑

A PHP Error was encountered Severity: Warning Message: Cannot modify header information - headers already sent by (output started at D:\Vhost\WebRoot\liu\www\system\application\controllers\A.php:1) Filename: libraries/Session.php Line Number: 662



在我在视图里,html头文件是这样写的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


很郁闷。也没楼上所说的什么空格。
现在看报错,反而是控制器的问题?
可是我的控制器也没提及编码问题啊。有 点悬~~~~
再说,我每一个控制器都开了十分钟的缓存的!

visvoy 发表于 2009-8-4 11:29:26

错误来源应该是楼主在使用session之前有了输出动作,检查你的session部分代码吧

blacktear23 发表于 2009-8-4 11:29:28

你的A.php里面有什么?

blacktear23 发表于 2009-8-4 11:32:39

再说,我每一个控制器都开了十分钟的缓存的!
还有,不应该叫缓存(Cache),叫缓冲(Buffer)比较合适。

书君 发表于 2009-8-4 11:47:54

visvoy大哥,我没有用到session啊!
我在控制器里的也就是一些基本操作。
像赋变量。调用model里的文件查询数据库。

还有,上网站打开页面时,这些错误提示,有一时有,一时没的,
就是说有时网站正常,有时却显示出这些问题出来,好奇怪!
好像是上帝在和我玩game~

Hex 发表于 2009-8-4 12:34:46

这个问题是 BOM 问题,你看看报错说 a.php 第一行有问题,那就是第一行有一个 BOM,
什么是 BOM,本站已经讨论很多次了,可以搜索本站,也可以搜索 google

书君 发表于 2009-8-4 12:58:58

这个问题是 BOM 问题,你看看报错说 a.php 第一行有问题,那就是第一行有一个 BOM,
什么是 BOM,本站已经讨论很多次了,可以搜索本站,也可以搜索 google ...
Hex 发表于 2009-8-4 12:34 http://codeigniter.org.cn/forums/images/common/back.gif


感激涕零啊,Hex大哥,让我亲个!~:victory:
页: [1]
查看完整版本: 请问这个问题怎么解决?