ホームページ  >  記事  >  バックエンド開発  >  PHP エラー警告: ヘッダー情報を変更できません - ヘッダーはソリューションによってすでに送信されています、warningheaders_PHP チュートリアル

PHP エラー警告: ヘッダー情報を変更できません - ヘッダーはソリューションによってすでに送信されています、warningheaders_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:18:19720ブラウズ

PHP エラー警告: ヘッダー情報を変更できません - ヘッダーはソリューションによってすでに送信されています、warningheaders

今日、次のコードをテスト中にこのエラーが発生しました:

コードをコピーします コードは次のとおりです:

session_start();
$_SESSION['ユーザー名']=$ユーザー名;
echo "";
exit();

エラーが発生しました:

コードをコピーします コードは次のとおりです:

警告: ヘッダー情報は変更できません - ヘッダーは既に送信されています...

いくつかのオンライン方法を調べた後、解決策はありませんでしたが、最終的に php.ini の Output_buffering をデフォルトの 4096 に設定したところ、このエラーは発生しなくなりました。

output_buffering 設定手順:

オフ: PHP 出力キャッシュをオフにすることを意味します

On: 無限出力バッファーをオンにします
4096: 4096Byte のサイズで出力キャッシュを開きます

デフォルトでは、php バッファーがオンになっており、バッファーのデフォルト値は 4096、つまり 4kb です。 Output_buffering 設定は php.ini 設定ファイルにあります。echo、print などでユーザー データを出力すると、output_buffering がいっぱいになるまで、データは php の out_buffering に書き込まれます。 。 見せる。 ob_start() を使用して php の出力バッファリングメカニズムを手動でアクティブにすることもできます。これにより、出力が 4kb のデータを超えた場合でも、ob_start() が php バッファスペースを次のように設定するため、データは実際には tcp に渡されず、ブラウザに渡されます。十分な大きさであること。スクリプトが終了するか、ob_end_flush 関数が呼び出されるまで、データはクライアント ブラウザに送信されません。

output_buffering の詳細については、以下を参照してください:

http://www.bkjia.com/article/55707.htm

補足: もちろん、BOM を削除することでこの問題を解決することもできます。UTF-8 BOM フリー形式でエンコードすることをお勧めします。子供靴をありがとう@ihipop

BOM については、簡単に言えば、ソフトウェアは BOM を使用してファイルが UTF-8 エンコードされているかどうかを識別します。 Firefox の初期のバージョンでは、拡張機能に BOM を含めることはできませんでしたが、Firefox 1.5 以降のバージョンでは BOM のサポートが開始されました。さて、PHP も BOM をサポートしていないことがわかりました。 PHP は設計時に BOM の問題を考慮していませんでした。つまり、UTF-8 でエンコードされたファイルの先頭にある BOM の 3 文字は無視されません。

別の問題についても言及されました。「COOKIE 送信メカニズムによる制限があり、これらのファイルの先頭に BOM がすでにあるファイルでは、COOKIE を送信できません (COOKIE が送信される前に PHP がファイル ヘッダーをすでに送信しているため)。ログインとログアウト この関数は無効です。COOKIE と SESSION に依存するすべての関数が無効です。「実行されたファイルには BOM が含まれており、これらの 3 文字が表示されるため、これが WordPress の背景に空白のページが表示される理由です。が送信され、Cookie への依存が発生し、セッション機能が無効になるため、次のエラーが発生する可能性もあります:


コードをコピーします コードは次のとおりです:
警告: session_start() [function.session-start]: セッション cookie を送信できません - ヘッダーは E:webfunctionssessions.php の 39 行目で既に送信されました (出力は E:webindex.php:1 で開始されました)

PHP ページ エラー: 警告: ヘッダー情報は変更できません - ヘッダーはすでに

によって送信されています
php.ini を開き、output_buffering を on に設定します。 Appache を再起動します。OK。


PHP テスト エラー、警告: ヘッダー情報は変更できません - ヘッダーは既に

によって送信されました
1. 通常、Sessionstart を呼び出す必要はなく、サーバーが自動的に処理します。

2. 2 つのスクリプト コードは または の適切な位置に配置する必要があります。
3. 「header("location:login.php");」コードは「

http://www.bkjia.com/PHPjc/885650.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/885650.html技術記事 PHP エラー 警告: ヘッダー情報を変更できません - ヘッダーはソリューションによってすでに送信されています、警告ヘッダー 今日次のコードをテストしたときにこのエラーが発生しました: コードをコピーします コードは次のとおりです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。