Сессия пуста, когда я перенаправляю страницу в codeigniter
Мой сеанс работает нормально, когда пользователь вошел в систему или вышел из системы, это работает. Но у меня есть проблема, когда перенаправить ссылку.
Вот мои настройки конфигурации:
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Я просто создаю код Javascript в файле представления, который обрабатывает только событие click. Цель этого события нажатия - когда пользователь нажимает переключатель, он просто изменяет URL-адрес простого кода JavaScript следующим образом:
document.location = "http://www.mydomain.com/index.php/sets/";
Проблема: когда этот URL-адрес изменился, моя переменная user_data сеанса становится пустой. Я проверяю, используя следующий код в наборе контроллера:
class sets extends CI_Controller{
public function index(){
$this->load->view('header');
print_r($this->session->all_userdata());
$this->load->view('footer');
}
Результат этого:
Array ( [session_id] => 421e7bec9096249af3f37142796005f2 [ip_address] => 00.115.429.81 [user_agent] => Mozilla/5.0 (Windows NT 6.1; rv:27.0) Gecko/20100101 Firefox/27.0 [last_activity] => 1395076388 [user_data] => )
эээ теперь я обнаружил, что мои user_data пустые
1 ответ
Вы используете Chrome с инструментами разработчика или Firefox с firebug? Если так, у меня тоже были проблемы с этим. Это связано с изменением строки пользователя / агента, которая не соответствует текущему сеансу (из-за инструментов разработчика). Если вы используете инструменты разработчика, вы можете попробовать изменить $config['sess_match_useragent'] = TRUE;
в $config['sess_match_useragent'] = FALSE;
Я бы порекомендовал изменить это обратно в вашей производственной среде.