2012-01-11 110 views
110

Possible Duplicate:
PHP headers already sent
Headers already sent by PHP“无法发送会话缓存限制器 - 已经发送了头”

具有用变得非常恼人的会议的一个问题。每次我试图将一个特定的页面,我得到下面的错误上启动一个会话:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at ............ on line 23 

使用此代码:

<?php 
session_start(); 
if(isset($_SESSION['user'])) 
    { 
     $user = $_SESSION['user']; 
     echo "$user"; 
    } 
else 
    { 
    } 
?> 

难道是暗示我已经使用session_start();?我看了一下,但没有真正清除了这一点对我来说。

感谢

+0

“(输出从23行的...........开始”第23行的内容是什么? – 2012-01-11 00:53:17

+0

第23行是上述代码的'session_start();'位 – user1039878 2012-01-11 00:54:24

+2

在我的情况我不得不设置文件编码没有BOM。 – 2016-05-06 05:54:14

回答

211

“已经发送了头”是指你的PHP脚本已经发出HTTP头,因此现在不能进行修改它们。

检查您是否在致电session_start之前不发送任何内容。更好的是,只需要在你的PHP文件中做第一件事就是session_start(所以把它放在绝对的开始,在所有的HTML之前)。

+13

把<?php session_start();?>以上所有和它的工作,谢谢!:) – user1039878 2012-01-11 00:57:58

+73

请允许我分享另一个见解。如果您使用PHP文档,请确保<?php是第一个字符,而不是标签或间隔。这解决了我的问题。 – bryansis2010 2013-02-17 11:21:53

+20

就我而言 - 我创建了新文档,粘贴了内容并工作。问题是在包含的文件中包含了一个utf符号(bom)。 – 2014-06-25 15:19:19

相关问题