首先,一些背景信息。我正在开发一个多站点项目,3个城市都有自己安装的自定义CMS类型的东西。客户端不希望支付多个SSL证书,尽管我的建议甚至不会查看通配符SSL。我的工作是创建一个位于domain.com/paypment.php上的统一支付网关,这些网站本身位于子域,例如cityx.domain.com。
现在,在原始付款页面上,代码访问由CMS创建的名为$ _SESSION ['member_obj']的对象,并且代码中的某个位置使用以下内容检测用户的帐户级别:
if ($_SESSION['member_obj']->data['account_level']==1)
所以,这一切都很好,花花公子没有任何问题,但只要我在我的脚本上使用相同的对象就会中断。我想指出我的代码位于根域,并且子代码上的工作代码使得$ _SESSION变量可用于所有子域:
ini_set('session.cookie_domain', '.domain.com');
现在,奇怪的部分,对象存在,但是当我尝试使用 - > data ['account_level']方法时,它就死了。我知道对象存在,因为我可以print_r对象,我得到以下内容:
__PHP_Incomplete_Class Object
(
[__PHP_Incomplete_Class_Name] => Member
[table] => members
[data] => Array
(
[id] => 1689
[title] => mr
[firstname] => Testy
[surname] => McTesters
[age_range] => 18-24
[gender] => male
[email] => xxxxxx
[username] => xxxxxx
[password] => xxxxxx
[account_level] => 1
[joined] => 1326290317
[password_reset] =>
[password_reset_date] => 01/01/1970
[last_active] => 1326881531
[status] => active
[contact] => 0
[third_party] => 0
[notifications] => 0
[terms] => 1
[dummy] => 0
[override_account] => 0
[premium_request] => 1
[password_reset_date_original] => 1970-01-01
)
然后加载其他东西。
那么,是否有人能够向我解释一个物体如何存在,但不能被访问?
答案 0 :(得分:3)
可能 - __PHP_Incomplete_Class
- 是因为你忘了include
封装这些数据的类的类定义吗?
答案 1 :(得分:1)
您必须在开始会话之前加载课程Member
。
检查session.auto_start
中的off
是否设为php.ini
。