我就是想知道配置里面的原因,(另外,用meta的话,meta之前有输出也能跳转?并且和环境没关系?)

解决方案 »

  1.   

    HTTP/1.1 标准需要一个绝对地址的 URI 做为 » Location: 的参数, 但有一些客户端支持相对 URI。-->第一个问题答案要记住 header() 必须在任何实际输出之前调用,不论是来自普通的 HTML 标记,空行或者 PHP。有一个常见错误就是在通过 include(),require() 或一些其它的文件存取类函数读取代码时,有一些空格或者空行在调用 header() 之前被发送了出去。同样在一个单独的 PHP/HTML 文件中这个错误也很普遍。---->第二个错误原因
      

  2.   

    header():用于发送特定的HTTP标头。注意,使用header()函数时,一定要在任何产生实际输出的HTML或PHP代码前面调用该函数。 
      

  3.   

    首先谢谢PleaseDoTellMeWhy;
    我这个问题和客户端没关系,一样的程序,我把它放到两个不同的服务器上运行,用同样的浏览器打开,服务器A能跳转,服务器B不能跳转。(服务器B不能跳转的原因正如PleaseDoTellMeWhy所说,修改header信息之前浏览器不能有输出)
      

  4.   

    header前不能有html输出,你的echo了,当然要出错
      

  5.   

    可以用ob_start但是程序重新规划一下,完全可以做到不在前面输出,因为你需要header跳转了,前面的输出本来就是无意义的.
      

  6.   

    <?
    echo "a";
    echo "<script>top.location=\"index.php\"</script>";
    exit;
    ?>
      

  7.   

    header前不能有输出,你已经做了输出了
      

  8.   

    LZ说的没错,有时header前面有输出也是不会引起问题的,我也碰到过。不过原因我也不知道。
      

  9.   

    header("location:index.php"); 之前不能有任何输出的语句!!!!echo "a";加上这个不可以的。加上个ob_start();!大概看看这段代码! if (mysql_num_rows($result)){
    session_start();
    if (!session_is_registered("UserID"))
    {
    session_register("UserID");
    $UserID = "SysAdmin";
    }
    ob_start();
    //echo "we have a match!";
    header("location:SysAdmin/index.php");
    }else{
    echo "no match";
    }
      

  10.   

    终于找到了
    php.ini中output_handler =mb_output_handler这样子header之前就可以由输出语句了。
    output_handler =
    就不能有输出语句
      

  11.   

    或者
    output_buffering = On
    这样子header之前也可以有输出语句
      

  12.   

    这个就是打开输出缓冲
    等于用ob_start