我正在 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;
我可以防止缓存与会话相关的数据库请求吗?或者防止某些表被缓存?
或者是否有另一个(可能很明显)我没有想到的解决方案?
提前致谢。