[PHP-users 7505] PHPLIBセッションとオブジェクト
Watanabe Takehiro
php-users@php.gr.jp
Thu, 16 May 2002 15:07:34 +0900
渡辺(雄)@NTT-ITです。
セッションの使い方について教えてください。
PHPLIBのセッション関数の勉強のために session_sample3.php をつくりました。
しかし、リロードをすると下記のエラーが出てしまいます。
Fatal error: Cannot instantiate non-existent class: test1 in
/usr/local/apache/phplib-7.2c/php/session.inc(329) : eval()'d code on line 1
クラス test2002 を登録しなければ何の問題もなく動作します。
オブジェクトを登録するには同様にしたらよいのでしょうか?
環境
Redhat6.2
Apache1.3.19
PHP 4.0.6
PostgreSQL 7.1.2
.htaccsess 内でauto_prepend_file を使い
page_open、page_closeは必ず呼んでいます。
PHPLIBをつかったユーザ認証は正しく行えています。
======= session_sample3.php ======
<?php
class test2002{
var $classname = "test2002";
var $persistent_slots = array("hoge");
var $hoge;
}
$t2002 = new test2002;
$sess->register("counter");
$sess->register("t2002"); <------ この行がなければエラーは出ない
$counter++;
$t2002->hoge++;
?>
<?
echo "counter $counter <BR>"; ←これはちゃんと値が増えます。
echo "hoge $t2002->hoge <BR>";
?>
<a href="session_sample3.php"> りろーど </a><BR>
=========================================
============ login.inc ==================
<?php
include ("prepend.php");
page_open(
array("sess" => "Example_Session",
"auth" => "pfAuth",
"perm" => "Example_Perm",
"user" => "Example_User"));
?>
=========================================
#######################################################
別のディレクトリでauto_prepend_fileを呼ばないところで
下記のスクリプトが問題なく動作しています。
======= session_sample2.php ======
<?php
include ("prepend.php");
class test1{
var $classname = "test1";
var $persistent_slots = array("hoge");
var $hoge;
}
page_open(array("sess"=>"Example_Session"));
$test = new test1; <----- 「あ」
$sess->register("counter");
$sess->register("test");
$counter++;
$test->hoge++; <------ 「あ」があるので毎度値が
クリアされてしまうのは
織り込み済みです。
page_close();
?>
<?
echo "counter $counter <BR>";
echo "hoge $test->hoge <BR>";
?>
<a href="session_sample2.php"> リロード </a>
==================================