KFH.009 - Cannot send session cache limiter问题

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

  1. 如果用dreamwever的话并使用utf-8编码,请在某个页面上右键==>页面属性==>标题/编码,就会看到一个“包括Unicode 签名(BOM)(S)”的复选框,把它取消即可。这是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的。
  2. 修改php.ini中的session.auto_start = 0 为 session.auto_start = 1
  3. 还有一种方法直接给session_start()加上@session_start()就没事了。
  4. 该信息说明在启用session的时候,已经有内容输出,可在最上面加 ob_start()。
    ob是output buffering的简称,ob用对了,能加速网页的速度,但是盲目的加上ob函数,只会增加CPU额外的负担。ob的基本作用。 1).防止在浏览器
    有输出之后再使用setcookie,或者header,session_start函数造成的错误。
    2).捕捉对一些不可获取的函数的输出,比如phpinfo会输出一大堆的HTML,但是我们无法用一个变量
    例如$info=phpinfo();来捕捉,这时候ob就管用了。
    3).对输出的内容进行处理,例如进行gzip压缩,例如进行简繁转换
    ,例如进行一些字符串替换。
    4).生成静态文件,其实就是捕捉整页的输出,然后存成文件,经常在生成HTML,或者整页缓存中使用。
  5. 在PHP文件头部直接加下屏蔽警告错误的代码:
<?php  
   //如有session_star(),放在session_star()后面  
   error_reporting(E_ERROR);  
   ini_set("display_errors","Off");  
   //你的php代码  
?>  
  1. 另外在Sublime中出现这个问题时,可能是因为编码格式的问题,解决办法可以是把编码从UTF-8改成GBK或者是GBK改成UTF-8,在改变之后你可以看到如下情况:
<?php  
   //乱码session_star(),乱码session_star()乱码  
   error_reporting(E_ERROR);  
   ini_set("display_errors","Off");  
   //乱码php乱码
?>  

之后你把最开头的那个“锘”给去掉就可以了。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,330评论 19赞 139
  • ob的基本原则:如果ob缓存打开,则echo的数据首先放在ob缓存。如果是header信息,直接放在程序缓存。当页...
    金星show阅读 1,235评论 0赞 1
  • 下一站,Whitby 距离上一次写游记已经过去了3年多,其实也去过很多地方,但是没有一个地方,值得我心情舒畅地去构...
    隐少年阅读 431评论 6赞 8
  • onchange 事件在元素值改变时触发。
    王康_Wang阅读 219评论 0赞 0
  • 一、Bug的属性 1、Bug重现环境 操作系统 这个是一般软件运行的一大前提,基本上所有的软件都依赖于操作系统之上...
    吴瑶的博客阅读 3,885评论 0赞 3

友情链接更多精彩内容