日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

訪問PHP程序頁面出現(xiàn)"Warning: Cannot modify header information - headers already sent by …."報錯

更新時間:

問題描述

訪問PHP程序頁面時,出現(xiàn)"Warning: Cannot modify header information - headers already sent by …."報錯。

 

問題原因

在PHP中Cookie的使用存在一些限制,本文的報錯是由于PHP程序在輸出內(nèi)容之前產(chǎn)生了Cookie。

  • setcookie函數(shù)必須在標簽之前使用。
  • 使用setcookie函數(shù)之前,不可以使用echo函數(shù)輸入內(nèi)容。
  • 在網(wǎng)頁被加載完后,Cookie才會出現(xiàn)。
  • setcookie函數(shù)必須在數(shù)據(jù)輸出瀏覽器前對Cookie進行賦值。

 

解決方案

  1. 若需要在輸出內(nèi)容之前產(chǎn)生Cookie,可以在程序的最上方加入ob_start函數(shù),ob_start是打開輸出緩沖區(qū)的函數(shù)。例如void ob_start(void),當緩沖區(qū)激活時,所有來自PHP程序的非文件頭信息均不會發(fā)送,而是保存在內(nèi)部緩沖區(qū)。如果需要輸出緩沖區(qū)的內(nèi)容,可以使用ob_end_flush或flush函數(shù)輸出緩沖區(qū)的內(nèi)容。
  2. 如果是使用ECS服務器,需要在php.ini中開啟output_buffering,即output_buffering = On,則會開啟所有PHP程序的輸出緩存。但是這樣做會影響PHP執(zhí)行效率,請根據(jù)服務器的性能和代碼的復雜度選擇是否開啟該功能。
  3. 如果是Linux系統(tǒng)的虛擬主機,請在控制面板頁面的PHP.ini設置中,將 輸出緩沖區(qū)數(shù)據(jù)塊設置 參數(shù)設置為 啟用,然后等待3分鐘后進行測試,確認符合預期。

 

適用于

  • 云虛擬主機