PHP 标头(位置)错误


PHP Header (Location) errors

每当我打开页面时,我都会收到以下错误:

[2012 年 7 月 4 日 17:10:45] PHP 警告:无法修改标头信息 - 标头已由 (输出从/home/test/public_html/admin/header.php:39 开始) /home/test/public_html/admin/edAgent.php 在第 80 行

[2012 年 7 月 4 日 17:10:55] PHP 警告:无法修改标头信息 - 标头已由 (输出从/home/test/public_html/admin/header.php:39 开始) /home/test/public_html/admin/edAgent.php 在第 80 行

包括标头的代码段:

编码标头:

header('Content-Type: text/html; charset=utf-8');

登录重定向标头:

if(!isset($_SESSION["login"])OR $_SESSION["login"]!=1){        
    header('Location: login.php');
    exit;     
    }

检查登录用户是否具有编辑权限:

if($level!='4') {
    header('Location: acd.php?msg=1');
    exit;
}

检查 ID 是否存在:

if ($nUsers==0) {    
    header('Location: acd.php?msg=2');
    exit;    
}

检查信息是否可编辑:

if($access != '4') {        
    header('Location: acd.php?msg=1');
    exit;        
}

如果你输出任何内容来筛选,那么标题将写入。因此,如果您打算在代码中使用header(),则必须在输出任何内容之前执行此操作,或者在开始时使用 ob_start() 打开输出缓冲。

如果标头已经发送,则 JS 方法应该可以工作。

print '<script type="text/javascript">window.top.location.href = "'. $myurl .'";</script>';

页面开头和ob_end_flush();页面末尾添加ob_start();。尝试在函数中存储 header(),尽管在 header() 之后不应该有任何输出代码。

希望对你有帮助