当前位置: 首页 > 图文教程 > 网络编程 > PHP > php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法

PHP
php header 详细使用说明与使用心得
php利用header函数实现文件下载时直接提示保存
php $_SERVER当前完整url的写法
PHP 配置open_basedir 让各虚拟站点独立运行
PHP 程序员的调试技术小结
php 静态变量的初始化
php与XML、XSLT、Mysql的结合运用实现代码
php+javascript的日历控件
php 引用(&)详解
PHP小程序自动提交到自助友情连接
PHP 单引号与双引号的区别
PHP 递归效率分析
PHP 进程锁定问题分析研究
phplock(php进程锁) v1.0 beta1
php Memcache 中实现消息队列
MYSQL 小技巧 -- LAST_INSERT_ID
Ajax+PHP 边学边练 之二 实例
php 运行效率总结(提示程序速度)
Ajax PHP 边学边练 之三 数据库
在mysql数据库原有字段后增加新内容

PHP 中的 php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 97 ::
收藏到网摘: n/a

在windows下编程,当使用session_start()方法的时候,有时会报 session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/inpublisher/php1.php:1)这样的错误 说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现“锘 ”这样的一个字符(引号内),把它去掉以后,再运行,OK,运行正常。后来在网上搜索一些文件,给的解释是:UTF8文件的BOM(Byte Order Mark)标志,在保存的时候会自动存入!
不管它是干嘛的,现在的目的就是把它去掉,我总结的方法有下面三种:
1、 在Linux下打开,去掉后再保存
2、 用写字板打开,把光标放到最前后回车,然后再敲删除,重新回到第一行,这样最前面的那个字符就会去掉
3、 使用UltraEdit编辑器(很好用的一个编辑器,网上多的是,自己下去),打开高级----配置----Unicode/utf-8 检测,把自动检测UTF-8文件,自动检测没有BOM的Unicode文件等前面的勾全去掉,然后你再打开那个文件,就会发觉“锘 ”这个字符出现了,删除就OK了

笨方法:难道有很多页面的时候,你也这样做吗?
在PHP页面首部直接设置OB_START();,就可以解决!
解决办法:
修改php.ini中的session.auto_start = 0 为 session.auto_start = 1
output_buffering =改为on或者任何数字。
然后别忘记重新启动...