2011-02-10 53 views
2

私はZendのプロジェクトで、次のZendのセッションエラーを抱えている:私はブートストラップファイルにこのコードを書いているZendのセッションに致命的なエラーが発生

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Zend_Session::start() - /home/besthomes/public_html/Zend/Session.php(Line:426): Error #2 session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/besthomes/public_html/Zend/Exception.php:1) Array' in /home/besthomes/public_html/Zend/Session.php:432 Stack trace: #0 /home/besthomes/public_html/index.php(47): Zend_Session::start() #1 {main} thrown in /home/besthomes/public_html/Zend/Session.php on line 432 

include('include.php'); 
include "Zend/Loader.php"; 

Zend_Loader::registerAutoload(); 
Zend_Session::start(); 

私は理由を知りませんでしたこのエラーのために。この問題から脱出するのを手伝ってください。おかげさまで

答えて

2

ファイルに追加の文字がないか確認してください。 - 例えば
は、このコードは、エラートリガされません。

<?php 
session_start(); 

をそれ1は以下となります。

(blank line here!) 
<?php 
session_start(); 

同じことが含まれるファイルに適用されます。しかし、ファイルをインクルードするときには、タグをclossingした後に行を追加しないように気を付けなければなりません。これは動作します:

<?php 
    //content of included file 
?> 

何かそれはしませんように:

<?php 
    //content of included file 
?>  
(blank line here!) 
(!and here) 

一部の人々は良い練習としてnot using closing tag in php scriptsを考えるだから、なぜです。

またob_startob_end_flushを使用して、その問題を回避することができますが、私は言ったように - それは回避策、ないソリューションです。

2

コード内のどこかに、出力が行われています。これにより、PHPはHTTPヘッダーを送信します。 HTTPヘッダーは既に送信されているため、セッションを開始しようとすると再び送信できません。セッションを使用したい場合は、早めにセッションを開始するか、最初に行うことをお勧めします。

一方、私のアプリが別のエラーを出力してHTTPヘッダーを送信すると、このエラーが発生しました。

詳細についてはドキュメントを見てください: http://framework.zend.com/manual/en/zend.session.html

「セッションの開始」と呼ばれる。すなわちセクション: http://framework.zend.com/manual/en/zend.session.advanced_usage.html

ヒント: 削除/セッションを開始する行をコメントアウト、そして何が出力されているかを見てください。あなたのコードと無関係であっても、別のエラーがあるかもしれません。

+0

thanxこのエラーは、私のブートストラップファイルに何らかの悪質なコードが追加されたときに発生しますが、そのコードを削除しましたが、なぜこのエラーが同じコードとして来るのかが分かりません。 。 – Shaily

+0

私はこれがキャッシュと関連していると思いましたか? – Shaily

+0

PHPタグを開く前の空白? – opHASnoNAME

関連する問題