CodeIgniter SessionProblem - PullRequest
       0

CodeIgniter SessionProblem

0 голосов
/ 01 октября 2011

Я использую CodeIgniter и сохраняю сеансы в своей БД.

Следующая строка кода будет выполнена, если пользователь попытается войти в систему, и вход в систему будет успешным (обнаружил его данные в БД):

$this -> session -> set_userdata($account_data); /login-page

После этого я перенаправляю пользователя на свою панель инструментов. Теперь приборная панель пытается прочитать данные $ account_data из сеанса. НО

$this -> session -> all_userdata(); /dashboard

выводит только стандартный контент сеанса из codeigniter. Я проверяю сессию после вызова set_userdata (выше) и загружается массив. Но для этой сессии нет записи в БД. Хорошо, я вызываю all_userdata (); в приборной панели - показывает стандартное содержание сеанса и данные сохраняются в моей базе данных.

Резюме:

LoginPage - загрузить некоторые учетные данные и сохранить их в сеансе. Я могу загрузить учетные данные из этого сеанса. НЕТ БД-запись

Dashboard - Session содержит только стандартное содержимое сеанса codeigniters. DB-запись с этими данными существует.

Только в начале страницы входа я уничтожаю сеанс.

Я немного растерялся, кажется, что сессия не "переносится" на следующий сайт.

Любые советы?

Редактировать: тест-кейс

 public function testSessionStart(){
           if ($this->session->userdata('key')){

           }else{
               $this->session->sess_destroy();
           }

            $this->session->set_userdata('key','12345566');
            debug($this->session->all_userdata());
            debug($this->session->userdata('session_id'));
            echo "<br><a href='".base_url()."login/testSessionEnd'>Klick me</a>";
        }

        public function testSessionEnd(){
            $this->session->set_userdata('sid','hasd12312kasdj89d');
            debug($this->session->all_userdata());
            debug($this->session->userdata('session_id'));
        }

Если вызывается функция Start, db никогда не получает запись. End func генерирует новый сеанс и сохраняет его в БД. я понятия не имею, почему

1 Ответ

0 голосов
/ 06 октября 2011

Обратите внимание, что вы не можете получить доступ к данным сеанса на той же странице, где вы устанавливаете данные сеанса.Если запись в БД отсутствует, проверьте структуру БД и внимательно прочитайте эту страницу .Надеюсь, это решит вашу проблему.

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