Может print_r $ _SESSION объект, но не может получить к нему доступ? - PullRequest
1 голос
/ 18 января 2012

Сначала немного справочной информации. Я работаю над многосайтовым проектом, 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'], он умирает от меня. Я знаю, что объект существует, потому что я могу напечатать объект и получить следующее:

__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
    )

с последующей загрузкой других вещей.

Итак, кто-нибудь может быть настолько любезным, чтобы объяснить мне, как объект может существовать, но не быть доступным?

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Может быть - __PHP_Incomplete_Class - потому что вы забыли include определение класса для класса, который инкапсулирует эти данные?

1 голос
/ 18 января 2012

Вам нужно будет загрузить класс Member до начала сеанса.

Проверьте, установлен ли session.auto_start на off в вашем php.ini.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...