在 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 或者任何数字。 然后别忘记重新启动... 详细出处参考:jb51.net/article/21136.htm