php提示”Cannot send session cache limiter

运行PHP页面,提示“Cannot send session cache limiter – headers already sent by()”或者"function session_start()"错误,让人非常头痛。因为这不是第一次遇到了,为了加深印象,把问题原因分析及解决方法详细写下来,分享给大家。

问题分析:

记得第一次遇到这个问题时,谷歌了很多答案,也有很多种解决方法,但出现这个问题大部分最根本的原因是:当在运行session_start();时是不能有任何输出,而这之前页面已经有出现空行现象,或可以说页面是含有DOM编码的UTF-8页面。

查看页面是否含有DOM编码方法:

1、使用Dreamweaver软件打开页面,查看页面属性(修改-页面属性-标题/编码),查看“包括Unicode签名BOM”项前面是否打勾;

2、记事本打开,另存为时,编码格式为ANSI则不含有DOM,若为UTF-8,基本肯定含有。

解决办法:

通过工具,如:editplus、ultraedit等工具,去掉DOM行即空白行即可解决,具体步骤如下

 

步骤:通过UE打开页面–文件–另存为–格式选择“UTF-8无BOM”–保存,即完成了UTF-8页面去BOM头,再不会出现页头空行情况。
如图所示:
 

 

 

其它解决方法:

1、页面头部加上:ob_start();//偶尔碰到失效;
2、新建页面,将代码COPY过去,这个方法有时也管用,注意GBK还是UTF-8编码(通常由GBK另存为UTF-8编码时会默认带DOM编码);
3、另一种情况服务器PHP配置问题:修改php.ini中的 session.auto_start = 0 为 session.auto_start = 1;
4、基本上面的可以解决这个问题,还有些很少见的非常规方法,如果不能解决,大家只能谷歌了。

时间: 2024-10-08 23:49:37

php提示”Cannot send session cache limiter的相关文章

session Cannot send session cache limiter 错误提示

开始时经常会碰到如下提示 warning: session_start() [function.session-start]: cannot send session cache limiter - headers already sent (output started at e:php教程www.111cn.netadmin.php:1) in e:phpwww.111cn.netlogolistadminlogo.php on line 2 这是提供session前面己经有输出了,我们只要

解决php中Cannot send session cache limiter 的问题的方法_php技巧

今天在使用php 的session 的时候,出现了以前就遇见但是又解决不了的问题,在页面上出现如下提示: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at E:\php\code\admin.php:1) in E:\php\code\logolist\adminlogo.php on line

php Cannot send session cache limiter

Cannot send session cache limiter /* Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/canna/public_html/sites/default/settings.php教程:130) in /home/canna/public_html/includes/session.inc on li

php使用session提示Cannot send session cache

今天在使用php 的session 的时候,出现了如下提示: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started .. 因为在session_start(); 语句之前有其他的html代码 解决办法: 修改php.ini中的session.auto_start = 0 为 session.auto_st

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

说是已经有输出,用编辑器打,前面明明什么都没有,原来在使用AJAX的 时候,也出现过这种情况,后来,把这个PHP文件放到linux中打开,会发现,在文件的最前面,会出现"锘 "这样的一个字符(引号内),把它去掉以后,再运行,OK,运行正常.后来在网上搜索一些文件,给的解释是:UTF8文件的BOM(Byte Order Mark)标志,在保存的时候会自动存入! 不管它是干嘛的,现在的目的就是把它去掉,我总结的方法有下面三种: 1. 在Linux下打开,去掉后再保存 2. 用写字板打开,把

Warning: session_start() [function.session-start]: Cannot send session cookie解决办法

在很多时间使用了session就会出来如下提示了, Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/u114264/include/db_mysql教程.class.php教程:1) in /home/u114264/login1.php on line 3 Warning: sessio

Warning: session_start(): Cannot send session

cache limiter echo "<a href='../home.php'>Home</a>n<br />"; session_start(); cache limiter 想知道为什么session_start();加一句就会出现警告消息 session_start(): 放在文件开始  试试 Note: If you are using cookie-based sessions, you must call session_start(

mybatis一级缓存(session cache)引发的问题

问题回顾 最近项目功能单元测试中,出现了一个奇怪的bug.远程调试发现,程序进行了2次相同的查询,返回了实体类(ClassA)的2个对象:classAInstance1和classAInstance2,当修改classAInstance1.property1时,竟然classAInstance2.property1也被改了!!! 很快发现classAInstance1和classAInstance2地址是相同的,它们是同一个内存对象! 原因分析 经调试发现,mybatis返回的实体类的内存地址是

异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)_实用技巧

回答的也多数都是:引用System.Web,不要用HttpContext.Current.Application应该用System.Web.HttpContext.Current.Application,后来在网上看到一篇关于System.Runtime.Remoting.Messaging.CallContext这个类的详细介绍才知道,原来HttpContext.Current是基于System.Runtime.Remoting.Messaging.CallContext这个类,子线程和异步线