?没错?不会吧。
难道你的浏览器自己跳转到baidu了?
结果是这样吧:HTML页面 HTML
Warning: Cannot modify header information - headers already sent by (output started at PHPDocument2:7) in PHPDocument2 on line 9

解决方案 »

  1.   

    上面的代码贴错了是:
    <html>
    <head>
    <title>主页</title>
    </head> 
    <body>HTML页面</body>
    </html>
    <?php 
    echo "HTML";
    header('Location:http://www.baidu.com/'); 
    ?>  
      

  2.   

    ……
    强悍!
    手册里写的是:
    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. 
      

  3.   

    在linux下面运行通过不报错,在windows下运行报错!
      

  4.   

    我是在windows下啊!什么原因啊?
      

  5.   

    真的假的?
    我试了linux,一样报错,报一样的错。
    你们不是在忽悠我玩吧。
      

  6.   

    真的,我也奇怪,在centos5.0下面运行是可以的,我也在找原因呢!
      

  7.   

    为什么我在windows下面不出错呢?
      

  8.   

    晕,
    header前是不能有输出的。
      

  9.   

    我查了好多资料都说header前不能有输出,怎么我这就不出错呢,我也没改配置文件啊
      

  10.   

    奇怪了
    header('Location:http://www.baidu.com'); 
    这句在我这随便加到程序的哪个地方都能跳到百度啊
      

  11.   

    Warning类型的报错都是可以通过error_reporting 函数或者php.ini屏蔽。
      

  12.   


    你把下面两行代码在你机器上运行一下
    echo 'bug';
    header('Location: http://www.baidu.com');
      

  13.   


    不是吧??没有人知道那个缓存的开启对header函数的影响吗????如果楼主的output_buffering选项值为4096,或者是TRUE和以上的值,而不是FALSEHUO 0,那么出现这种情况是正常不过的,因为设置了(开启了)这个功能,意味着4096内大小的页面是会被缓存掉,就是执行过程中,是被放在了缓存里,而没有发送出去,所以HTTP标头没有发送出去,就不存在这种错误了。楼主把这个选项设置为FALSE,重启服务器看看会显示什么??就是Warning错误了。
      

  14.   

    高手啊....果然是这个原因    那output_buffering这个选项的值原来就是4096的啊,怎么默认值不是off的吗,是不是版本不同这个值就不同啊?
      

  15.   

    这么说ob_start也可以达到相同的效果。
      

  16.   

    header前不能有输出信息,是因为header中的信息会作为http协议头的一部分发送给服务器端,你随便输出些别的会打乱http头的格式,另服务器端无法识别这次http请求。