Я занимаюсь разработкой веб-сайта (с корзиной для покупок) поверх 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;
Можно ли предотвратить кэширование связанных с сеансом запросов к БД? Или запретить кэширование определенных таблиц?
ИЛИ есть другое (вероятно, очевидное) решение, о котором я не думал?
Заранее спасибо.