集中するためにやっていること

表題の通り、Zend_Sessionが使えません。

$session = new Zend_Session_Namespace('global');

と記述すると、下のエラーがでます。インスタンスを生成する部分を除けば
正常に動作し、他のZendFrameworlkコンポーネントは使える状態です。同じソースでもレンタルサーバ上では思い通りに動くので私のローカル環境の設定がおかしいと思うのですが、何を見たらいいでしょうか。

環境はWindowsVista、Apache 2.2.6、PHP 5.2.4(xampp)、ZendFramework1.0.3です。

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Session must be started before any output has been sent to the browser; output started in C:\xampp\htdocs\index.php/1' in C:\xampp\ZendFramework\library\Zend\Session.php:359 Stack trace: #0 C:\xampp\ZendFramework\library\Zend\Session\Namespace.php(116): Zend_Session::start(true) #1 C:\xampp\htdocs\index.php(22): Zend_Session_Namespace->__construct('global') #2 {main} thrown in C:\xampp\ZendFramework\library\Zend\Session.php on line 359

A 回答 (1件)

if (headers_sent()) {


 throw new Zend_Session_Exception(上記error_msg);
}
となっているので、HTTPヘッダが既に送信されているのが原因かと。

レンタルサーバで大丈夫なのは、output_bufferingが有効になっているからじゃないでしょうか。
ローカルでも動くように処理の順番を変えたほうがよいのでは?
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

教えていただいたoutput_bufferingをレンタルサーバと同じ、「4096」にすることで、動作するようになりました。
 また、処理内容も検討してみようと思います。

 ありがとうございました。

お礼日時:2008/01/04 23:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報