Я использую 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 генерирует новый сеанс и сохраняет его в БД.
я понятия не имею, почему