Я разрабатываю веб-сайт (с тележкой для покупок) на базе Codeigniter, и хочу использовать параметр sess_use_database , чтобы пользователям было сложнее взломать сеанс корзины покупок.
Я также хочу использовать кэширование базы данных для ускорения общих запросов к БД (например, «получить категории» поскольку большая часть содержимого БД не будет регулярно меняться), поэтому я включил этот параметр:
$db['development']['cache_on'] = TRUE;
//where 'development' is my environment
В результате я обнаружил, что содержимое сеанса не обновляется, например, по этому запросу:
$this->basket_contents = array_values($this->session->userdata('basket_contents'));
Кроме того, Я пробовал это:
$this->db->cache_off();
... перед запросом сеанса, но это не решает проблему (я предполагаю, потому что это не прямой запрос к БД).
Мои настройки сеанса следующие:
$config['sess_cookie_name'] = 'str_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Могу ли я предотвратить кеширование запросов к БД, связанных с сессией? Или предотвратить кеширование определенных таблиц?
ИЛИ есть другое (вероятно, очевидное) решение, о котором я не думал?
Заранее спасибо.