在使用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: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u114264/include/db_mysql.class.php:1) in /home/u114264/login1.php on line 3
分析最大的可能是在session_start()前面有字符输出包括空格,只要处理就好了,还有一种方法直接给session_start()加上@session_start()就没事了,但这种方法不推荐。
最通常的解决方案,打开output_buffering = 4096;全局性质。
第二种解决方案,ob_start:打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区,为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
注意的地方:如果使用utf-8编码,一定要去掉UTF-8中的BOM,这都是因为utf-8编码文件含有的bom原因,而php4,5都是不支持bom的,去掉bom,可以用Notepad++打开转换一下. |