[PHP-users 5726] Re: session使用時のclass definition のエラーとは?
KOYAMA Tetsuji
php-users@php.gr.jp
Wed, 27 Feb 2002 21:57:27 +0900
小山です。
At Wed, 27 Feb 2002 17:39:41 +0900,
space@try-net.or.jp wrote:
> PHP4: 4.1.1(日本語対応)でPostgreSQL: 7.2をレンタルサーバーで利用してます。
> 同じ環境の2つのサーバーで同じファイルを動かしたのですが、1つではちゃん
> と動作し、もう1つでは、以下のようなエラーがでました。
>
> Fatal error: The script tried to execute a method or access a property
> of an incomplete object. Please ensure that the class definition
> resultpgselect of the object you are trying to operate on was loaded
> _before_ the session was started
おそらく resultpgselect クラスのオブジェクトがセッションに登録されて
いますよね。で、セッションからオブジェクトを再構築する際に、定義が見つ
からないと文句を言っています。つまり session_start() の *後* で
resultpgselect クラスの定義がある(または定義しているファイルをrequire
している) ので、セッション開始時点では定義の存在しないクラスを作ること
になってします。その結果、、セッションハンドラはしょうがないので
Object 型のオブジェクトを生成します。当然こいつは resultpgselect のメ
ンバー関数は保持していないので上記のエラーになるわけです。
session_start() を呼ぶ前にクラスの定義をするように変更すれば直るはず
です。
--
小山 哲志@ビート・クラフト
koyama@beatcraft.com
koyama@hoge.org