[60秒筆記] PHP的headers already sent....

PHP出現了錯誤是 headers already sent.. 通常發生在session、setcookie、header(轉址)這些代碼時且同時無效使用。
這常發生在某PHP環境下正常(舊版本7.2),移植到新PHP環境就不允許使用(新版本7.3)。這是因為新版本更嚴謹,不允許這些PHP執行之前,你的HTML文件就已經有輸出了。你有兩個作法可改善。
  1. 調整代碼順序:
    將session_start()或header()或setcookie()放在該php之頁首,確保這些函式之前沒有任何的打印輸出
  2. 調整php.ini:
    找到output_buffering,預設off改成on即可(apapche重啟)

留言