作者 主題: [問題]請問PHP的問題....  (閱讀 2977 次)

0 會員 與 1 訪客 正在閱讀本文。

adau

  • 懷疑的國中生
  • **
  • 文章數: 38
    • 檢視個人資料
[問題]請問PHP的問題....
« 於: 2004-02-18 03:51 »
小弟是程式新手,作業環境是win2k

在寫到一個處理完畢需要header("location:editjournal.php");
的時候出現一個錯誤訊息:
Warning: Cannot modify header information - headers already sent by (output started at c:\my_web\mycss.inc:128) in c:\my_web\journal\edit_middleprocess.php on line 26

這個mycss.inc是一些單純的css語法
只有我每次require mycss.inc進去後,做header()時都會有這樣的錯誤訊息

請各位大大指導一下小弟....感激不盡...........

adau

  • 懷疑的國中生
  • **
  • 文章數: 38
    • 檢視個人資料
[問題]請問PHP的問題....
« 回覆 #1 於: 2004-02-18 04:43 »
找到答案了^^||


In PHP 4, you can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
[問題]請問PHP的問題....
« 回覆 #2 於: 2004-02-18 08:51 »
ob_start() 的設計應該不是為了處理這樣子的問題, 這樣子用起來有點怪怪的.

在網頁的設計中, 本來在送出 header 指令之前, 就是不能送出其他的東西, 否則 browser 應該也不會對後面的指令有反應.

我覺得應該是改變你程式內的寫法比較好一些.

PS. 我們公司是使用 template 來處理畫面, 剛好順便就避免這個問題, 因為所有的資料都在最後  template 的 output 才會送出, 之前不管處理到那兒, 都還來的及使用 header 送出指令.