2012-01-18 20 views
1

まず、背景情報のビット。私はマルチサイトプロジェクトに取り組んでいます。カスタムCMSタイプのものをそれぞれ独自にインストールした3つの都市があります。クライアントは複数のSSL証明書を支払う必要はなく、私の提案にもかかわらず、ワイルドカードSSLを調べることさえありません。私の仕事は、domain.com/paypment.phpにある統一された決済ゲートウェイを作成することです。サイト自体はサブドメイン(cityx.domain.comなど)にあります。

さて、オリジナルの支払いページ上のコードは、CMSで作成されたオブジェクトは、[「member_obj」] $ _SESSIONと呼ばれ、コードの中でいくつかの点で使用してユーザーのアカウントレベルを検出し、アクセス:

if ($_SESSION['member_obj']->data['account_level']==1) 

だから、これは問題なくすべての上品で素敵な動作をしますが、私がスクリプト上で同じオブジェクトを使うとすぐに破損します。私は私のコードは、サブにルートドメインの上に座って、作業コードしていることを指摘したい - 私はすべてのサブドメインが利用できる$ _SESSION変数を作った使用:

ini_set('session.cookie_domain', '.domain.com'); 

を今、奇妙な部分、オブジェクトが存在しますが、私は - > data ['account_level']メソッドを使用しようとすると、それは私の上で死ぬ。

他のものの負荷が続く
__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 
    ) 

:私は、私は、オブジェクトをしますprint_rことができると私は、次の取得becasueオブジェクトが存在することがわかっています。

だから、どのようにオブジェクトが存在するのかアクセスできないのかを私に説明するのに十分親切な人はいますか?

+1

'session_start() 'を呼び出す前に' Member'クラスをロードする必要があります – DaveRandom

+0

私はこれを恐れていました。なぜなら、ページは別のエンティティであり、クラスを使用していないからです。私は私の仕事を切っているように見える、ありがとう! –

答えて

1

セッションを開始する前に、クラスMemberをロードする必要があります。

session.auto_startが、php.inioffに設定されていることを確認してください。

3

できます - includeこのデータをカプセル化するクラスのクラス定義を忘れていますか?

関連する問題