即使在插入ob_start()和ob_flush()之后,以下代码也无效;
我不断收到已发送的PHP标头错误
<?php
ob_start();
include("/home/www/pheincl/config.php");
include("/home/www/pheincl/common_functions.php");
$num = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
if($num == null)
{
$num = $_SERVER['HTTP_X_MSISDN'];
if($num == null)
{
$num = $_GET["msisdn"];
}
}
if(strlen($num) > 3)
{
$sql="select count(*) from members where msisdn='$num'";
$r=fetch($sql);
if($r[0] > 0)
{
$r1=fetch("select pin from members where msisdn='$num'");
if(strlen($r1[pin]) > 2)
{
header("Location:http://location1.com?msisdn=$num&pin=$r1[pin]");
}
}
else
{
header("Location:http://location2.com&msisdn=$num");
}
}
else
{
header("Location:location3.com/phe/log.php");
}
ob_end_flush();
?>
更新:经过一些进一步的测试后,看起来这个问题是我的服务员特有的。我认识的人把它放在他们的服务器上并且工作正常
答案 0 :(得分:4)
使用notepad ++并将编码设置为UTF8而不使用BOM 您的BOM(字节顺序标记)可能是导致它的原因
编辑: 确保对所有包含的文件执行此操作
答案 1 :(得分:1)
在任何标题函数之前,脚本不应该打印任何内容。这意味着没有回声,没有PHP标签之外的HTML代码等。
所以要么sql回应一些错误,要么你的包含文件做类似的事情。
答案 2 :(得分:0)
在header
代码执行之前,某些内容正在向浏览器发送一些输出。查找输出到屏幕或任何打印或回显语句的任何错误。
答案 3 :(得分:-1)
您可以尝试删除最终版本吗?&gt;避免这个问题。有时这可以解决问题。