我无法处理此错误,请帮助我。它在我的笔记本电脑上运行但在我的桌面上无效。
为什么?
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");
?>
谢谢你的好意!
答案 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)
答案 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)
即使我把它放在文件的顶部,我也得到了它。
解决方案
是删除文件并以<?php
开头的文件,然后将php之后的所有内容复制到新文件中。 (不要复制文件的开头)。