我目前使用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
上(如果您访问http://www.madisonh3.com/calendar.php,则可以看到错误)。我的所有文件都相同,包括common.php
。之后,我将编写html标记并从那里包含标题。
我已经阅读了有关session_start
的其他讨论,所有人都说要确保在session_start
之前不输出任何html。另外,如果我做错了什么,为什么它只发生在我的10个文件中的两个?
答案 0 :(得分: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()
之前回显数据的内容。
答案 1 :(得分:0)
您应该注意您的编辑器不存储 utf-8物料清单标题,此标题有时会以3个字节存储在文件的开头。
编辑器会隐藏它们,所以如果您不确定您的文件是否包含这些字符,您可以使用非解释编辑器(十六进制编辑器),也可以使用这个精彩的在线W3C checker。 BOM标头被PHP视为输出,这可能会导致令人讨厌的Cannot modify header information - headers already sent
错误。
检查您的网址显示,确实存在此类BOM表头。查看编辑器(IDE)的设置。