这里是错误代码:
Cannot send session cookie - headers already sent by (output started at
C:\xampp\htdocs\log\New folder (4)\New folder (2)\iskono\forum.php:5) in
C:\xampp\htdocs\log\New folder (4)\New folder (2)\iskono\forum.php on line 244
Warning: session_start() [function.session-start]: Cannot send session cache limiter -
headers already sent (output started at C:\xampp\htdocs\log\New folder (4)\New folder
(2)\iskono\forum.php:5) in C:\xampp\htdocs\log\New folder (4)\New folder
(2)\iskono\forum.php on line 244
第244行是需求代码
<? require("forum/index.php"); ?>
如何解决这个错误?
答案 0 :(得分:4)
您需要在发送任何输出(例如HTML)之前进行session_start
调用。所以把它放在你的doctype声明之上,并确保之前没有空格。例如:
<?php
session_start();
?>
<!DOCTYPE html>
<html>
...
答案 1 :(得分:3)
您在调用session_start()
之前显然已经发送了一些数据,这必须在第一时间调用!
从右强>
<?php
session_start();
echo "hi man :) "; // this is right
<强>错误强>
<?php
echo "hi man :( "; //this is wrong
session_start();
答案 2 :(得分:1)
您已完成以下任一操作:
echo
,print
或其他导致第5行输出的功能。] include
或require
d已导致输出发送的文件。检查所有包含的文件,查看<?php ?>
标记之前/之后的前导/尾随空格。第5行是什么?
答案 3 :(得分:1)
确保在会话开始之前没有向浏览器发送任何字符。
看起来你在forum.php的第5行发送了一些东西。
可能是由echo
,print
引起的,或者是因为您直接从脚本发送文字:
<?php
some code....
?>
text sent to the browser
<?php
more code.
session_start();
?>
通过将session_start();
放在脚本的开头,确保会话提前启动。
许多其他人在会话方面遇到过类似的问题。请查看有关http://php.net/manual/en/function.session-start.php session_start()
的PHP手册,了解会话问题,解决方案和提示。
答案 4 :(得分:1)
由于还没有其他人提及它:如果您使用UTF编码文件(不输出文件,文件本身),请确保没有字节顺序标记(没有BOM的UTF-8。
在文件开头添加BOM可能会导致此错误,因为它会计为输出。
此外,您可以使用输出缓冲来解决与“已发送标头”错误相关的任何其他问题。这会导致发送 no 输出,直到您使用ob_flush()
或ob_end_flush()
明确说出“发送输出”。
答案 5 :(得分:1)
在php中,可以在发送任何其他输出之前发送标头。如果您在标头之前发送了任何输出,则标题将生成错误。 (甚至是之前的空间