Значения сеанса Codeigniter не сохраняются - PullRequest
0 голосов
/ 29 июля 2011

** ОТВЕТ: Мне нужно было «десериализовать» мои переменные сеанса для последующего использования.Тьфу.

$ eventTypeID = unserialize ($ this-> session-> userdata ('eventtypeID'));


Я понимаю, что это избитая тема, но я новичок в CIЯ прочитал большинство документов, но я должен что-то упустить из виду, когда речь идет о правильной настройке / получении сессий.

Я следил за конфигурациями, найденными в этом посте, и могу подтвердить, что FF хранит cookie: http://codeigniter.com/forums/viewthread/178904/

При настройке моего приложения пользователи выбирают значения из 2 раскрывающихся списков,эти значения затем помещаются в переменные сеанса, и вызывается новое представление.Из нового представления мне нужно иметь возможность доступа к переменным сеанса и передавать их для запроса моей базы данных.В настоящее время, когда я просматриваю запрос, ему не отправляются значения сеанса.

Вся помощь очень важна!Спасибо!

РЕДАКТИРОВАНИЕ НИЖЕ: Кажется, что установка переменных сеанса (массива) не происходит.

Вот мой код для установки:

public function goSearch(){
            if( !empty( $_POST ) ) {
                $this->load->library('session');                
                $searchData = array(
                   'eventtypeID'  => serialize($this->input->post('pEventType')),
                   'venuecityID'  => serialize($this->input->post('pVenueCity'))                   
               );


     $this->session->set_userdata($searchData);  /*ERROR: Nothing is being set.  I've done print_r on $searchData, which returns values, but if I do:

$test = $this->session->set_userdata($searchData);  
Print_r($test);

Nothing is returned */

                  $this->_displayPublicPage('search', NULL);

               }
            }

Вот моя функция для передачи запроса:

public function readEvents(){
        $eventTypeID = $this->session->userdata(‘eventtypeID’);
        $venueCityID = $this->session->userdata(‘venuecityID’);
        echo json_encode($this->event_model->getSearchEvents($eventTypeID, $venueCityID));
      }

Вот мой запрос в моей модели:

public function getSearchEvents($eventTypeID, $venueCityID){           
        $eventTypeID = intval($eventTypeID);
        $venueCityID = intval($venueCityID);

        $this->db->select('*');         
        $this->db->where('event_status =', 'A');
        $this->db->where('eventtype.eventtype_id =', $eventTypeID);
        $this->db->where('city.city_id =', $venueCityID);
        $this->db->join('eventtype', 'event.fk_eventtype_id = eventtype.eventtype_id');
        $this->db->join('venue', 'event.fk_venue_id = venue.venue_id'); 
        $this->db->join('city', 'venue.fk_city_id = city.city_id'); 
        $this->db->join('tickets', 'event.event_id = tickets.fk_event_id'); 
        $this->db->from('event');

       $this->db->_compile_select();     
        $q = $this->db->get();
       echo $this->db->last_query();                
        if( $q->num_rows() > 0 ) {
            return $q->result();
        } else {
            return array();
        }

   }  

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Не было десериализации моих данных после их передачи.Тьфу.Работает сейчас.

0 голосов
/ 29 июля 2011

Если вы используете куки для хранения данных вашего сеанса, вы должны перезагрузить страницу после set_userdata ().Это связано с тем, что файлы cookie отправляются в заголовке http.

Нет необходимости использовать сеансы, когда все, что вам нужно, - это передавать переменную между контроллером и моделью или представлением.

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