Cannot send session cache limiter - headers already sent错误解决方法

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at ×××.php:1) in ×××on line 2

这个问题很常见,多数是因为在session_start之前有输出了!对于老鸟来说,这个错误基本上不会发生,但是如果你是用DW写代码的,连高手也有可能发生这个错误!

如上面的提示:在第×××文件的第1行,×××文件的第2行,随你看,这两处是不会有任何输出语句的,但是它还是照常提示,现在看我抓的图:

 

 

 

看红色框框住的地方,对,问题就出在这里!

查DW的帮助文件:

包括 Unicode 签名 (BOM) 可在文档中包括字节顺序标记 (BOM)。BOM 是位于文本文件开头的 2 到 4 个字节,可将文件标识为 Unicode,如果是这样,还标识后面字节的字节顺序。由于 UTF-8 没有字节顺序,因此可以选择添加 UTF-8 BOM。对于 UTF-16 和 UTF-32,这是必需的。

看见没有!如果选了这个选项,就会在页面的最前面输出2到4个字节!

===============================================================================================

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

在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了

 

Unicode 签名 (BOM) 可在文档中包括字节顺序标记 (BOM)。BOM 是位于文本文件开头的 2 到 4 个字节,可将文件标识为 Unicode,如果是这

样,还标识后面字节的字节顺序。由于 UTF-8 没有字节顺序,因此可以选择添加 UTF-8 BOM。对于 UTF-16 和 UTF-32,这是必需的。
看见没有!如果选了这个选项,就会在页面的最前面输出2到4个字节!

而 session_start() 要求之前没有任何输出给客户端浏览器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值