session_start()错误

时间:2011-03-05 17:59:38

标签: php session

我无法处理此错误,请帮助我。它在我的笔记本电脑上运行但在我的桌面上无效。

为什么?

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at F:\xampp\htdocs\etest\index.php:1) in F:\xampp\htdocs\etest\common\header.php on line 3

代码:

<?php
ob_start();
session_start();
include("constants.php");
include("includes.php");
?>

谢谢你的好意!

9 个答案:

答案 0 :(得分:3)

通常,当您看到“标头已发送”时,表示您正在尝试执行需要设置HTTP标头的操作,但您已将内容发送到客户端。使用HTTP时,您必须发送标题,然后是内容。如果您发送了内容,则错过了发送标题的机会。

答案 1 :(得分:3)

错误发生在F:\xampp\htdocs\etest\common\header.php on line 3,但输出已在F:\xampp\htdocs\etest\index.php:1

处开始

我假设您发布了header.php,但是您的index.php在之前有空格 &lt;?php include()或输出第一行以外的标题。

错误是由index.php的第一行引起的,无论是什么。我猜空白。

答案 2 :(得分:1)

在文件顶部启动会话。

直接在php标记之后进行回显或在收到此错误消息之前发送一些标题。

<?php
session_start();
ob_start();
include("constants.php");
include("includes.php");
?>

答案 3 :(得分:1)

通过配置启用输出缓冲。这样它就会先于其他任何东西开始,所以它肯定能解决你的问题。虽然您应该查看代码并找出当前错误的原因,因为您似乎还没有完全理解您的网站。

通过配置启用输出缓冲后,您不再需要手动调用ob_start()

使用以下内容创建名为 .htaccess 的文件:

php_flag output_buffering on

...或将此行添加到您的php.ini:

output_buffering = On

答案 4 :(得分:1)

use_only_cookies=0文件

use_only_cookies=1php.ini

我在xampp 7.0.1中遇到了同样的问题并修复了它。 Read it here

答案 5 :(得分:0)

是在文件顶部启动会话并确保在

之前没有空格
<?php

另外你可以调用session_start();只有一次

答案 6 :(得分:0)

在有任何其他输出之前必须调用

session_start()。错误告诉您输出是在index.php第1行开始的。对session_start()的调用必须放在此之前。

答案 7 :(得分:0)

将此代码放入includes.php

ob_start();
session_start();

从每个其他页面中删除相同的代码。 还要确保在文件中初始化之前没有空格

(特别是你收到错误,因为index.php的第一行没有header.php的错误)

答案 8 :(得分:0)

即使我把它放在文件的顶部,我也得到了它。

问题INVISIBLE UTF8 CHARACTER

解决方案 是删除文件并以<?php开头的文件,然后将php之后的所有内容复制到新文件中。 (不要复制文件的开头)。