当前位置:首页 > PHP教程 > php会话 > 列表

php提示”Cannot send session cache limiter

发布:smiling 来源: PHP粉丝网  添加日期:2018-10-20 11:45:42 浏览: 评论:0 

运行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头,再不会出现页头空行情况。

如图所示:

php提示”Cannot send session cache limiter
php提示”Cannot send session cache limiter

其它解决方法:

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、基本上面的可以解决这个问题,还有些很少见的非常规方法,如果不能解决,大家只能谷歌了。

Tags: Cannot send session cache limiter

分享到: