代码如下:<?php
ob_start();
@include_once("./XXX.inc.php");
@include_once("./XXXC.inc.php");
@include_once("./XXXX.inc.php");
//取得从login.php页传过来的用户名和密码 
$user_name=safe_str($_POST["username"]);
$user_password=md5($_POST["password"]);
$connect=connect($host_name,$host_user,$host_password,$db_name);
if($connect==0)
header("Location:error.php?em=5");
else
{
$str='select * from '.$db_table["XXXX"].' where username="'.$user_name.'" and userpassword="'.$user_password.'"';
//COOKIE登录函数
$check=login2_user($connect,$str);
//SESSION登录未完成??????????????????????????????
/*$check=login_user($connect,$str,$session_table);
*/
@mysql_close($connect);
if(1==$check)
{
$url="dir_tree.php";
Header("Location: $url");
}
else
{
$url="error.php";
Header("Location:$url?em=4&r=$check");
}
}
 
?>

解决方案 »

  1.   

    到header()就有问题
    还有,login2_user($connect,$str);中的setcookie()函数!
      

  2.   

    加个屁OB_START
    把报错信息都贴出来,找到“Cannot modify header information ”前面的报错信息,根据这个信息找问题原因。
    如果前面没有报错信息,查查前面有没有输出空格什么的~
      

  3.   

    你说在家里没问题,估计是传到服务器后数据库连接有问题,出现了错误提示,在HEADER、SETCOOKIE之前有任何输出都不行~
      

  4.   

    check.inc.php的302行是什么?
    另外
    <?php
    ob_start();
    这几个必须顶到页面最上面写,不能留任何空格,换行以及其他输出
    最后to stan23(小刀) :你不懂ob_start这个函数吗?无语....
      

  5.   

    check.inc.php 302行处是<?PHP
    319----322行处都是setcookie();
    而其他对应usercheck.php出现在header();
      

  6.   

    感谢上面两位,问题解决拉,哈哈哈,太爽拉,~!
    加ob_start()还是对的~!
    可是,这个函数是干什么的,为什么出现这个问题,
    能解释一下吗?我想把问题搞明白~!
      

  7.   

    ob_start()只能让你程序的错误提示信息后于HEADER和COOKIE动作出现,而不能解决错误本身~
    你这里就是程序本身的问题,解决好了,根本没有用ob_start()的必要,查查PHP手册你就知道ob_start是在什么时候用到的了~
      

  8.   

    错!!当在程序中间出现输出时,加ob_start()可以暂时缓存输出而让header输出正常!只有当主程序的ob_start()前面出现输出,你说的"ob_start()只能让你程序的错误提示信息后于HEADER和COOKIE动作出现,而不能解决错误本身"才正确.而出现楼主这种错误的朋友中,我敢说70%的只要加ob_start()在前面就能解决.
      

  9.   

    ob_start用在这里治标不治本,程序写的严禁最重要~
      

  10.   

    愚见:
    header前面不能有输出,比如echo等.还有html的空格等.
    如果不能保证没有输出,加ob_start是最好的方法. 而且这样比较好控制. 随时可以用ob_clean()清除缓冲输出.
      

  11.   

    to stan23(小刀):
    治标不治本??你能确定这里所出现的问题是我上一次回复中说的第二种情况吗?
    如果不是,那么:
    我保证了header的执行,也保证了程序输出的执行...还有什么地方需要治?
    我实在不想和你在这里纠缠,只是希望你不要让自己的言论误导别人.
      

  12.   

    看看你的 check.inc.php 文件中还有什么地方调用 关于css 等header的信息 
    如果重复调用 header 信息 
    也会出现这样的错误我以前经常遇到 
    总结的经验
      

  13.   

    TO surfchen(冲浪):
    少动肝火
    用ob_start来屏蔽错误信息,不知我们谁在误导呵呵~
      

  14.   

    setcookie()前不应该有echo语句吧
      

  15.   

    在windows上正常,在unix上出错
    估计是include的文件名大小写问题导致出错
    因为输出了错误信息,所以不能header
      

  16.   

    我是为能让网页A自动跳到网页才想到用header(Location:)
    如果我在网页开头加入<?PHP ob_start();?>
    而在网页最下面加入<?PHP ob_clean();?>
    这样就能解决header()与setcookie()问题吗?
      

  17.   

    试过可是问题是页面变成了“小白脸”,什么也不显示,
    把每个页面最下方的<?PHP ob_clean();?>去掉保留最上方的<?PHP ob_start();?>
    才能正常,可是像你们所的这种方法只是把错误信息留到了缓存区中,
    如果时间久拉,会不会出现段溢出,内存碎片等问题呢,?
    思考中。。
    现在,我的解决办法,只有把header()与setcookie()去掉,
    晕死我拉!
      

  18.   

    我今后想把自己家电脑做一个服务器,不过PHP论坛写过程中遇见了不少的麻烦,不断的出问题,不断的更新,晕死拉!
    结贴了,!,