在php中输出标题

时间:2012-09-26 12:16:23

标签: php header

  

可能重复:
  Headers already sent by PHP

我有这个登录脚本在我的wampserver上工作正常但是当我上传到我的webhost时我一直收到错误

  

警告:session_start()[function.session-start]:无法发送会话cookie - 已经发送的标头(输出从/ data / multiserv / users / 988963 / projects / 2254894 / www / admin / processor / login开始。 php:1)在/data/multiserv/users/988963/projects/2254894/www/admin/processor/login.php第2行

     

警告:session_start()[function.session-start]:无法发送会话缓存限制器 - 已发送的标头(输出从/ data / multiserv / users / 988963 / projects / 2254894 / www / admin / processor / login开始。 php:1)在/data/multiserv/users/988963/projects/2254894/www/admin/processor/login.php第2行

     

警告:无法修改标头信息 - 已在/ data / multiserv / users中发送的标头(在/data/multiserv/users/988963/projects/2254894/www/admin/processor/login.php:1处开始输出)第20行/988963/projects/2254894/www/admin/processor/login.php

下面是代码:

session_start();
ob_start();
extract($_POST);

include("../admin/includes/connect.php");

$query = "SELECT id,username,password FROM account WHERE username = 
           '$username' and password = '$password'";

$result = mysql_query($query) or die("unable to get query DB");

if ($row = mysql_fetch_array($result)) {
    if ($row) {
        extract($row);

        // create session
        $_SESSION['zen_user'] = 'J@0&fu#iEXHU';
        header("location: ../account.php?id=$id");
        exit();
    } else {
        echo "<script>alert('wrong username or password') ; 
           history.go(-1);</script>";
        exit();
    }
} else {
    echo "<script>alert('wrong username or password') ; history.go(-1);
           </script>";
    exit();
}

ob_end_flush();

3 个答案:

答案 0 :(得分:1)

放 使用ob_flush() 这最后而不是 ob_end_flush()函数

答案 1 :(得分:0)

也许您的包含文件(../admin/includes/connect.php)正在打印空格或什么?

我总是仔细检查包含文件中的php打开和关闭标签后面是否有空格

答案 2 :(得分:0)

ob_start();置于session_start();之上 同时将ob_clean置于header("location: ../account.php?id=$id");之上。