Php 会话启动()引发错误

Php 会话启动()引发错误,php,session,Php,Session,我当前使用php时遇到以下错误: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/paramireze/madisonh3.com/calendar.php:1) in /home/paramireze/madisonh3.com/includes/common.php on

我当前使用php时遇到以下错误:

Warning: session_start() [function.session-start]: 
Cannot send session cache limiter - headers already sent 
(output started at /home/paramireze/madisonh3.com/calendar.php:1)
in /home/paramireze/madisonh3.com/includes/common.php on line 5
每个文件的第一行是
include common.php
,而
common.php
中的第一行代码是'if(!isset($_SESSION)){SESSION_start();}'

此错误仅发生在
calendar.php
news.php
上(如果访问,可以看到错误)。我的所有文件都是相同的,其中包括一个
common.php
。在那之后,我将编写html标记,并在其中包含标题


我读过关于
session\u start
的其他讨论,都说要确保在
session\u start
之前不要输出任何html。另外,如果我做错了什么,为什么我的10个文件中只有两个发生了这种情况?

在执行
会话启动()命令之前,有一些东西正在输出数据。由于会话cookie设置为HTTP头,因此它必须位于任何HTML输出之前

第5行/home/paramireze/madisonh3.com/includes/common.php中的/home/paramireze/madisonh3.com/calendar.php:1中已发送会话cookie的错误
表明之前已输出某些内容


因此,在您的
会话_start()

开始之前,查看您的代码并找出可能在回显数据的内容。您应该注意,您的编辑器不会存储utf-8 BOM头,该头有时存储在文件的开头,有3个字节

编辑器将隐藏这些字符,因此,如果您不确定文件是否包含这些字符,您可以使用非解释编辑器(十六进制编辑器),或者使用这个奇妙的在线编辑器。BOM表标题被PHP视为输出,这可能导致严重的
无法修改标题信息-标题已发送
错误


检查您的URL表明,确实存在这样一个BOM表标题。查看编辑器(IDE)的设置.

在php代码开始之前,您是否检查过utf-8 BOM?或任何字符?在可能重复的会话之后,在文件中写入第一行代码。\u start是每个文件的第一行,使用includeNo查看源代码时,我在错误消息之前找到

,这很糟糕,我得到以下警告:session_start()[]:无法发送session cache limiter-在第5行的/home/paramireze/madisonh3.com/calendar.php:1)中的/home/paramireze/madisonh3.com/includes/common.php中已经发送了头(输出从/home/paramireze/madisonh3.com/calendar:1开始)。甚至在include之前的空格或换行符都可能导致这种情况发生。在会话_start()之前,您的脚本有一个输出,由于包含相同文件的其他脚本似乎正常工作,您应该查看calendar.php文件。