说了无数次了.手册上重点强调了.
在设置session和cookie前,不能实质性的向浏览器有任何显示性输出!
切记!
你要显示的东西.实在避不开就用ob_start给缓冲起来.

解决方案 »

  1.   

    仔细检查config文件里尾巴里不是不带了个空格之类的
    切记不能有输出
      

  2.   

    在你要输出cookie,session之前已经有东西输出了,比如空格,或者网页其他元素,这个问题在论坛真的说过很多了!
      

  3.   


    <?php
    include("../config.php");
    if ($_POST['admin_name'])
    {
    上面不要空格,顶格写!
    坚持config.php文件是否有输出内容, echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'> 连接数据库失败!";
    这里有输出啊。
    你可以在index.php 中将session_start();放在include("../config.php");的前面,
     Header("Location: admin.php");
    改为echo '<script>window.location="admin.php";</script>';
      

  4.   

    这个是SESSION调用的问题,在调用start前有输出了(包括)空格那些,你那个include("../config.php")的文件有没有输出,包括文件的前和后面有没有空格等等。
      

  5.   

    顶格什么的,是没有问题的,只要是在<?php内的,不要执行那些echo、print等在session_start前面就可以了,如果必定要,就可以用ob_start控制缓存
      

  6.   

    <?php 前面也没空格,我把config.php文件的输出去掉,将session_start();放在include("../config.php");的前面都不行啊 
      

  7.   

    呵呵.用的什么编辑器?
    如果存为带BOF头的UTF-8格式..就会有一个隐藏的不可见字符...用UESTUDIO打开看看吧.
      

  8.   

    问题终于搞好了!搞了我2个钟
    这样的错误,说是啊session.start()前已经有输出,用编辑器打,前面明明什么都没有。
    我试过很多方法都不行,后来网上搜到使用UltraEdit编辑器(很好用的一个编辑器,网上多的是,自己下去),打开高级----配置----Unicode/utf-8 检测,把自动检测UTF-8文件,自动检测没有BOM的Unicode文件等前面的勾全去掉,然后你再打开那个文件,就会发觉“锘 ”这个字符出现了,删除就OK了。
    “锘 ”这个字符,在index.php和config.php都有,因此修改后,就没这个错了,能够正常登陆后台了
      

  9.   

    哦,是吗?如果我的程序在<?php上面有空格,而不是顶格写的话,就会报session()错,请问gingzai777怎么解释呢?
      

  10.   


    给你说了就是utf-8的编码头.这类隐形字符在一般的浏览器里不可见.
    不过uestudio(即ultraedit)能很好处理它.切换到二进制模式,一眼就能看出来.
    采用vs-ide的经常会出这个问题.我工程师有一次也被这个折腾了很久.