0

我目前使用 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.phpand上news.php(如果您访问 http://www.madisonh3.com/calendar.php可以看到该错误)。我所有的文件都是一样的,其中包括一个common.php. 之后,我将编写 html 标签并从那里包含标题。

我已经阅读了有关的其他讨论,session_start并且都说要确保您之前不输出任何 html session_start。另外,如果我做错了什么,为什么它只发生在我的 10 个文件中的两个?

4

2 回答 2

2

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

该错误Cannot send session cookie - headers already sent by (output started at /home/paramireze/madisonh3.com/calendar.php:1) in /home/paramireze/madisonh3.com/includes/common.php on line 5表示之前输出了某些内容。

因此,请查看您的代码,并在您的session_start().

于 2013-03-07T19:58:52.353 回答
0

您应该注意您的编辑器不存储utf-8 BOM 标头,此标头有时以 3 个字节  存储在文件的开头。

编辑器会隐藏它们,所以如果您不确定您的文件是否包含这些字符,您可以使用非解释性编辑器(十六进制编辑器),或者这个很棒的在线W3C 检查器。BOM 标头被 PHP 视为输出,这可能会导致严重Cannot modify header information - headers already sent错误。

检查您的 URL 显示,确实存在这样的 BOM 标头。查看编辑器 (IDE) 的设置。

于 2013-03-07T20:13:07.473 回答