<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="PHP解决错误Cannot modify header information - headers already sent by的方法 Cannot send session cookie" id="card1">
<p> 游客</p><p>
标题:PHP解决错误Cannot modify header information - headers already sent by的方法 Cannot send session cookie<br/>
正文:<br/>
今天在测试以下代码时遇到该错误：代码如下: session_start(); $_SESSION['username']=$username; echo &amp;quot;&amp;lt;script language='javascript'&amp;gt;location.href='../admin.php';&amp;lt;/script&amp;gt;&amp;quot;; exit();出现错误：代码如下: Warning: Cannot modify header information - headers already sent by...看了一些网上的方法也没解决，最后在php.ini配置output_buffering默认为4096就没有遇到这个错误了：output_buffering设置说明：    Off: 表示关闭PHP输出缓存    On: 打开无限大的输出缓存    4096: 打开大小为4096Byte的输出缓存默认情况下，php buffer是开启的，而且该buffer默认值是4096，即4kb。你可以通过在php.ini配置文件中找到output_buffering配置.当echo,print等输出用户数据的时候，输出数据都会写入到php output_buffering中，直到output_buffering写满，会将这些数据通过tcp传送给浏览器显示。你也可以通过ob_start()手动激活php output_buffering机制，使得即便输出超过了4kb数据，也不真的把数据交给tcp传给浏览器，因为ob_start()将php buffer空间设置到了足够大。只有直到脚本结束，或者调用ob_end_flush函数，才会把数据发送给客户端浏览器。关于output_buffering详细介绍可以参考：http://camnpr.com/php-python/1772.html补充：当然你也可以通过去除BOM解决这个问题，建议以UTF-8无BOM格式编码。感谢 @ihipop 童鞋关于BOM，简单的来说，软件通过BOM来识别这个文件是否是UTF-8编码。在Firefox早期的版本里，扩展是不能有BOM的，不过Firefox 1.5以后的版本已经开始支持BOM了。现在又发现，PHP也<br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1773&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1773&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1773&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1773&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1773">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1773">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>