iT邦幫忙

0

ob_start()問題

php

剛接觸到ob_start(),網路上說把ob_start()刪除會出現錯誤,"Header had all ready send by" 但為何我測試後畫面還是正常轉跳,而且也沒有出現錯誤呢?

<?php
    //ob_start(); //打開緩衝區
    echo "Hello"; //輸出
    header("Location:test2.php"); //把瀏覽器重定向到index.php
    ob_end_flush();//輸出全部內容到瀏覽器
?>

2 個回答

0
舜~
iT邦研究生 4 級 ‧ 2019-08-23 14:36:58

1.已經出現警告了,不過因為跳到新的頁面,所以就看不到這個警告,因為畫面整個刷新了~~~
看php_error.log裡面的資訊會比較準確

2.php服務有問題(我遇過一次,超級無理頭),怎麼改都不會出錯,但也都保持舊畫面....
摸索超久,怒把apache關掉重啟動才出現錯誤與後來修改的畫面....(想翻桌又不能翻)

0
fillano
iT邦超人 1 級 ‧ 2019-08-23 14:59:30

...你都打開輸出緩衝了,輸出跟header都是寫到緩衝裡,直到ob_end_flush()才真正輸出,當然沒錯誤囉。

cheer0101 iT邦新手 5 級 ‧ 2019-08-23 15:01:22 檢舉

我有說我刪除了ob_start()去做測試,但是沒有顯示錯誤

舜~ iT邦研究生 4 級 ‧ 2019-08-23 15:03:55 檢舉

那您的ob_start();前面補個 // 吧,容易誤解~~

我要發表回答

立即登入回答