PHP程序訪問報錯Warning: Cannot modify header information - headers already sent by
問題描述
php程序出現報錯:”Warning: Cannot modify header information - headers already sent by ….”
問題原因
在PHP里Cookie的使用有一些限制:1、使用setcookie必須在標簽之前2、使用setcookie之前,不可以使用echo輸入內容3、直到網頁被加載完后,cookie才會出現4、setcookie必須放到任何資料輸出瀏覽器前才送出
解決辦法
1、在輸出內容之前產生cookie,可以在程序的最上方加入函數 ob_start();ob_start :打開輸出緩沖區函數格式:void ob_start(void)說明:當緩沖區激活時,所有來自PHP程序的非文件頭信息均不會發送,而是保存在內部緩沖區。為了輸出緩沖區的內容,可以使用ob_end_flush()或flush()輸出緩沖區的內容。
2、如果是獨立ECS服務器開啟php.ini中的output_buffering,即:output_buffering = On;這種方法開啟了所有php程序的輸出緩存,這樣做可能影響php執行效率,這取決于服務器的性能和代碼的復雜度。
3、如果是Linux系統虛擬主機,請將控制面板的PHP.ini設置中的【輸出緩沖區數據塊設置】參數設置為啟用,等待3分鐘后測試即可。