Php 会话启动()引发错误
我当前使用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
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文件。