2012-07-05 38 views
0

每當我打開網頁我收到以下錯誤:PHP頭(位置)錯誤

[04月2012年17點10分45秒] PHP的警告:不能更改頭信息 - 頭已經發出(輸出開始於/home/test/public_html/admin/header.php:39) /home/test/public_html/admin/edAgent.php on line 80

[04-Jul-2012 17:10: 55] PHP警告:無法修改標頭信息 - 已在 /home/test/public_html/admin/edAg中輸出的標頭(在/home/test/public_html/admin/header.php:39開始輸出) ent.php線80條上

件的代碼,包括標頭:

Encoding頭:

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

登錄重定向頭:

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

檢查是否記錄使用r的權限編輯:

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;   
} 
+0

看看/home/test/public_html/admin/header.php的39線 - 錯誤信息給你一個真正的大線索有 – 2012-07-05 09:58:56

+0

爲什麼你使用退出? – Gntem 2012-07-05 09:59:05

+0

39號線上有什麼代碼? – 2012-07-05 09:59:20

回答

1

如果頭已經發送JS方法應該工作。

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

如果你輸出任何東西到屏幕,然後,標題將寫入。因此,如果您打算在代碼中使用header(),則必須在輸出任何內容之前執行此操作,或者在開始時使用ob_start()開啓輸出緩衝。

0

add ob_start();在頁面的開始和ob_end_flush();和頁面的結尾處。雖然在header()之後不應該有任何輸出代碼,但可以在函數中嘗試存儲header()。

希望它有幫助