-2

可能重复:
PHP 已发送的标头

我有 php 版本 5.4.4

我有这个代码

echo "a";
session_start();
$_SESSION['login'] = "Jhon";
echo $_SESSION['login'];

这有效,为什么?错误在哪里:“标头已发送....” ???

4

3 回答 3

4

简而言之,输出缓冲已打开,这将确保您的脚本能够像这样工作。但建议依赖它,因为默认情况下其他服务器可能没有输出缓冲。如果您希望将其关闭(我会),请将output_buffering指令更改为0php.ini 中的。

于 2012-09-26T09:29:50.470 回答
1

一旦输出发送到浏览器(甚至是空格),您就不能向
浏览器发送任何标头信息。当您启动一个新会话(使用 session_start)
时,一个会话 cookie 从服务器发送到浏览器,这个 cookie
基本上是封装的在响应头中。

您可以使用 php 函数 headers_sent() 检查是否已发送标头

于 2012-09-26T09:43:38.520 回答
-1

尽管您的代码对我来说效果很好,但是您可以尝试在 echo 语句之前使用 session_start() 。

于 2012-09-26T09:56:42.133 回答