0

現在、php を使用して次のエラーが発生しています。

Warning: session_start() [function.session-start]: 
Cannot send session cache limiter - headers already sent 
(output started at /home/paramireze/madisonh3.com/calendar.php:1)
in /home/paramireze/madisonh3.com/includes/common.php on line 5

すべてのファイルinclude common.phpの最初の行は で、コードの最初の行common.phpは 'if(!isset($_SESSION)) {session_start();}' です。

このエラーは と でのみ発生しcalendar.phpます( http://www.madisonh3.com/calendar.phpnews.phpにアクセスするとエラーが表示 されます)。私のファイルはすべて同じで、. その後、htmlタグを書いてそこからヘッダーをインクルードします。common.php

私は他の議論を読んだsession_startことがありますsession_start. また、何か間違ったことをしているのに、10 個のファイルのうち 2 個だけで起こっているのはなぜですか?

4

2 に答える 2

2

コマンドの前にデータを出力するものがありますsession_start()。セッション Cookie は HTTP ヘッダーに設定されるため、HTML 出力の前に置く必要があります。

エラーCannot send session cookie - headers already sent by (output started at /home/paramireze/madisonh3.com/calendar.php:1) in /home/paramireze/madisonh3.com/includes/common.php on line 5は、何かが前に出力されたことを示します。

コードを調べて、 の前にデータをエコーし​​ている可能性のあるものを見つけてくださいsession_start()

于 2013-03-07T19:58:52.353 に答える
0

エディタがutf-8BOMヘッダーを保存しないように注意する必要があります。このヘッダーは、ファイルの先頭に3バイトで保存される場合があります。

エディターはそれらを非表示にするため、ファイルにこれらの文字が含まれているかどうかわからない場合は、非解釈エディター(16進エディター)またはこのすばらしいオンラインW3Cチェッカーを使用できます。BOMヘッダーはPHPによって出力として扱われ、これにより厄介なCannot modify header information - headers already sentエラーが発生する可能性があります。

URLを確認すると、実際にそのようなBOMヘッダーがあることがわかります。エディター(IDE)の設定を確認してください。

于 2013-03-07T20:13:07.473 に答える