Ich entwickle eine Website (mit einem Einkaufswagen) über Codeigniter und möchten die sess_use_database Einstellung verwenden, um es für Benutzer schwieriger zu machen, einen Einkaufswagen zu hacken Session.Codeigniter - wie Datenbankzwischenspeicherung für Sitzungen zu vermeiden
Ich möchte auch Datenbank-Caching verwenden gemeinsamen DB-Anfragen zu beschleunigen (wie ‚Kategorien erhalten‘, wie der größte Teil des DB-Inhalt wird nicht regelmäßig ändern), so habe ich diese Einstellung aktiviert:
$db['development']['cache_on'] = TRUE;
//where 'development' is my environment
Als Ergebnis ich finde, dass die Sitzung Inhalte nicht aktualisiert werden, zum Beispiel auf diese Anfrage:
$this->basket_contents = array_values($this->session->userdata('basket_contents'));
auch ich habe dies versucht:
$this->db->cache_off();
... vor der Sitzungsanfrage, aber es löst das Problem nicht (ich nehme an, weil es keine direkte DB-Anfrage ist).
Meine Sitzung setings sind wie folgt:
$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;
Kann ich verhindern, dass das Caching von sitzungsbezogenen DB-Anfragen? Oder verhindern, dass bestimmte Tabellen zwischengespeichert werden?
ODER gibt es eine andere (wahrscheinlich offensichtliche) Lösung, an die ich nicht gedacht habe?
Vielen Dank im Voraus.
Großartig, danke. Ich fange mit der ersten Option an. – Ade