投稿者 |
メッセージ |
|
< PHPプログラミング ~ セッションのエラーについて |
|
時間:
土 10月 21, 2006 1:09 pm
|
|
|
登録日: 2006年10月 19日
投稿記事: 8
|
|
現在セッションを用いてデータを持ちまわる仕組みを作っています。
データを持ちまわること自体には成功していますが、以下のようなエラーがでます。
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\www\root\xxx.php:2) in C:\www\root\xxx.php on line 5
このエラー文が出る原因は何でしょうか?ご存知の方いらっしゃいましたら教えてください。 |
|
|
|
|
|
 |
|
時間:
日 10月 22, 2006 12:31 am
|
|
|
登録日: 2006年10月 21日
投稿記事: 13
|
|
こんばんは。
ちょうど似たようなことをやっていたので、レスさせていただきます。
PHPマニュアルの session_start() の頁に、
“クッキーに基づくセッションを使用している場合、ブラウザに何か出力 を行う前にsession_start()をコールする必要があります。”
とあり、例えば以下のような記述は、ご質問と同じエラーになります。
Code: |
<?php
echo"sample";
session_start();
?>
|
対処方法についてですが、session_start() 実行前に何らかの出力がされているはずなので、
session_start() が先になるように実行順序を変更してみてください。
それが難しい場合は、ob_start() の利用を検討してみてください。
例えば前述のコードの場合、以下のように書き換えます。
Code: |
<?php
ob_start();
echo"sample";
session_start();
ob_end_flush();
?>
|
もう少し複雑な処理が必要な場合は、コールバック関数で…。
Code: |
<?php
ob_start("callback");
echo"sample";
session_start();
ob_end_flush();
function callback($buffer) {
return preg_replace("/sample/","REPLACE !!",$buffer);
}
?>
|
ご参考になれば幸いです。
波多野貴文 wrote: |
現在セッションを用いてデータを持ちまわる仕組みを作っています。
データを持ちまわること自体には成功していますが、以下のようなエラーがでます。
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\www\root\xxx.php:2) in C:\www\root\xxx.php on line 5
このエラー文が出る原因は何でしょうか?ご存知の方いらっしゃいましたら教えてください。
|
|
|
|
|
|
|
 |
|
時間:
日 10月 22, 2006 10:30 am
|
|
|
登録日: 2006年10月 19日
投稿記事: 8
|
|
Cannot send session cache limiter の件ですが、解決しました。
<?php の記述を改行していたため、エラーが表示されたようです。
その改行を消すとエラーも消えました。
ご教授ありがとうございました。 |
|
|
|
|
|
 |
|