投稿者 メッセージ
<  PHPプログラミング  ~  セッションのエラーについて
波多野貴文
投稿1時間: 土 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

このエラー文が出る原因は何でしょうか?ご存知の方いらっしゃいましたら教えてください。
トップに移動
ユーザー情報を表示 メッセージを送信
allison
投稿1時間: 日 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);
}
?>


ご参考になれば幸いです。Very Happy


波多野貴文 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

このエラー文が出る原因は何でしょうか?ご存知の方いらっしゃいましたら教えてください。
トップに移動
ユーザー情報を表示 メッセージを送信
波多野貴文
投稿1時間: 日 10月 22, 2006 10:30 am  引用



登録日: 2006年10月 19日
投稿記事: 8

Cannot send session cache limiter の件ですが、解決しました。
<?php の記述を改行していたため、エラーが表示されたようです。
その改行を消すとエラーも消えました。

ご教授ありがとうございました。
トップに移動
ユーザー情報を表示 メッセージを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.