- 09 Ιαν 2021, 18:23
#6939
Σε εκδόσεις OpenCart 3.0.x έως και την 3.0.3.6 υπάρχει bug στο garbage collection των sessions που καταχωρούνται στη βάση και δεν διαγράφονται.
Για την ενεργοποίηση του garbage collection ακολουθήστε τις οδηγίες:
(Οι οδηγίες βασίστηκαν σε κώδικα της v3.0.3.6, αν υπάρχει κάποια διαφορά σε παλαιότερες εκδόσεις στείλτε μηνυμα να το δω)
Στο system/library/session.php
κάτω από το:
το:
Για την ενεργοποίηση του garbage collection ακολουθήστε τις οδηγίες:
(Οι οδηγίες βασίστηκαν σε κώδικα της v3.0.3.6, αν υπάρχει κάποια διαφορά σε παλαιότερες εκδόσεις στείλτε μηνυμα να το δω)
Στο system/library/session.php
κάτω από το:
Κώδικας: Επιλογή όλων
προσθέτουμε:
register_shutdown_function(array($this, 'close'));
Κώδικας: Επιλογή όλων
Πριν το:
register_shutdown_function(array($this, 'gc'));
Κώδικας: Επιλογή όλων
προσθέτουμε:
public function __destroy() {
Κώδικας: Επιλογή όλων
Στο system/library/session/db.php
public function gc() {
$this->adaptor->gc();
}
το:
Κώδικας: Επιλογή όλων
Το κάνουμε έτσι (θα τρέχει μόνο κάποιες φορές που θα προκύπτει βάσει τυχαιότητας ο αριθμός 1 για να μην επιβαρύνεται ο sql server με συνεχή queries σε καταστήματα που έχουν πολλές επισκέψεις): public function gc($expire) {
$this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire < " . ((int)time() + $expire));
return true;
}
Κώδικας: Επιλογή όλων
public function gc() {
if (round(rand(1, 5)) == 1) {
$this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE `expire` < '" . $this->db->escape(date('Y-m-d H:i:s', time()-$this->expire)) . "'");
}
return true;
}
Αλεξάνδρα Γκόγκα - Software Developer @ People’s Code
OpenCart-Hellas.gr - Administrator & Founder
PeoplesCode.com - Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Μεταφορά - Τεχνική Υποστήριξη OpenCart
Ελληνική μετάφραση & Επεκτάσεις OpenCart
OpenCart-Hellas.gr - Administrator & Founder
PeoplesCode.com - Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Μεταφορά - Τεχνική Υποστήριξη OpenCart
Ελληνική μετάφραση & Επεκτάσεις OpenCart