Codeigniter говорит, что пользовательские данные сессии пустые, но существует в БД - PullRequest
2 голосов
/ 01 марта 2012

Всякий раз, когда я пытаюсь проверить значение в моем столбце userdata моего сеанса, он думает, что он пуст, когда он фактически в сериализованной таблице ci_sessions.

вот бессериализованное содержимое БД:

array (
  'user_data' => '',
  'edit' => 
  array (
    'image_id' => 'HF',
    'session_id' => '783c15b057bcd9c19d3fd82f367ee55d',
  ),
)

вот как я проверяю данные пользователя в моем представлении (сеансы заметок загружаются автоматически)

<?php if ($this->session->userdata('edit')) : ?> 

enter code here

и вот как я устанавливаю userdata сессии:

            $values = array(
        'image_id' => implode(",",$uploaded_image_ids),
        'session_id' => $this->session->userdata('session_id')
        );

        $this->session->set_userdata('edit', $values);

Кто-нибудь может увидеть проблему? (весь контроллер здесь http://pastebin.com/aXeRn1VN) Также вот мой config.php http://pastebin.com/A31nrC1b

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Переменные вида отделены от других переменных в CI. Я думаю (я все еще немного новичок в CI), что сессия $ this-> недоступна в Views. В этом сообщении на форуме CI обсуждается пара возможных решений проблемы http://codeigniter.com/forums/viewthread/100587/#508098 - одно из них состоит в том, чтобы передать значение 'userdata' из сеанса в массив $ data, который вы передаете представлению, - которое кажется лучшим решением.

1 голос
/ 01 марта 2012

Вы можете использовать как это

 <?php $edit = $this->session->userdata('edit'): if (!empty($edit)) : ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...