一般来说,要使用session_start()或header()之类的函数,必须在使用前没有输出,否则php会报错,说在使用这个函数前有输出内容.而一般来说,使用DW或者记事本编辑的php文件,会在文件头出现莫名其妙的输出空格.有时候是空格,有时候是个"锘"字.在Linux服务器上就看得出来.记得以前租用盘古的空间,上传了同样的程序,也是有上述问题的程序,并没有报错,网页正常可以使用,header()函数照样可用,可最近上传到自己的Linux服务器上,同一套程序,竟然会报错.让我郁闷...在他们的空间上,并不会报错,在自己的服务器上就会报错.我猜测他们是在php.ini中设置了什么.让header()之前有输出也可以照样执行程序体.我在谷歌上搜索不到些什么,特地来请教高手们!

解决方案 »

  1.   

    忘记说明,我的php文件都是utf-8编码的,有可能是文件自己加上了BOM标记!
      

  2.   

    不知道是否和php.ini中的session.auto_start这个设置有关.
      

  3.   


    这个是一个因素,php对BOM支持不是很好。不会报错的原因是output_buffering这个php.ini的设置是开启的。开启后会自动使用缓存,就是你header后,是保存在缓存,而没有送出,所以不报错。如果设置为Off,就会报错。
      

  4.   

    照gingzai777说的,把缓存开开吧。
      

  5.   

    在php.ini里 试试这个 output_buffering = on
      

  6.   

    十分感谢各位.的确是output_buffering这个设置.