Merhabalar,
Opencart 3.0.2.0 versiyonunda sisteme giriş yaptığımızda sistemden kopma olmuyor. Oturum devamlı açık kalıyor. Belki birkaç gün sayfayı yenilediğinizde sistemde oturum kayıtlı olarak çıkıyor. Bu da veritabanında oc_session dosyasının şişmesine neden oluyor. Ayrıca bu dosya dolduğunda opencart yedek alıp geri yükle dediğimde hata mesajı veriyor ve yedek hiçbir şekilde yüklenmiyor. Bunun için oc_session tablosunu günlük temizleyen bir modül kullanıyorum ama günlük oc_session tablosunu silmek bir sakınca oluşturur mu? Her gün silinen oc_session tablosundan dolayı yedek geri yükleme de sorun olmuyor. Bunu başka yollarla veya kodlarla yapabileceğim başka bir yolu var mıdır? Yoksa bu şekilde devam edeyim mi?
Opencart 3.0.3.8 versiyonunda 24 dakika sonra oturumu sonlandırıyor. db.php dosyaları her iki sürümde farklı.
Opencart 3.0.2.0 Session Sorunu
7
●299
- 30-12-2021, 10:09:53hocam,
php.ini dosyasında session.gc_maxlifetime ve benzer ayarlar var, bu ayarları kontrol edip düşürebilir misiniz? Aynı şekilde sunucunuzun izin veriyor ise cpanelden php settings kısmından da benzer ayarlara ulaşabilirsiniz. Ben hep müşterilerimde tam tersi sorun yaşıyorumi herkes çok kısa süre sonra atmasından şikayetçi oluyor ama sizde tam tersiphp.ini dosyasında eğer ayarlar normal ise htaccess e extra timeoutlarla ilgili tanımlanmış bir şey var mı kontrol edebilirsiniz. Böylelikle sorununuz DB yerine temelden çözülecektir. Bir aşama daha var eğer root erişiminiz var ise tmp dosyası buna sebep olur,tmp içindeki cacheleri temzileyip deneyebilirsiniz eğer sorun çözülüyorsa DB yerine mesela tmp içindeki ilgili dosyaların silinmesi için cron oluşturabilirsiniz bu da daha sağlıklı olacaktır
- 30-12-2021, 10:15:09halilevren adlı üyeden alıntı: mesajı görüntüle
$samsite_cookie_options = array ( 'expires' => ini_get('session.cookie_lifetime'), 'path' => ini_get('session.cookie_path'),
bu kodu bulup bu şekilde mi diye kontrol eder misin? eğer "'expires' => ini_get('session.cookie_lifetime') " bu kısım 'expires' => time() - 90000 veya herhangi bir rakam şeklinde ise bu rakamı düşürebilir (saniye cinsindendir) veya yukarıdaki gibi yapabilirsin. Ama bu işlemi yapmadan önce kesinlikle orijinal dosyayı yedeklemenizi öneririm - 30-12-2021, 13:51:02halilevren adlı üyeden alıntı: mesajı görüntüle
3.0.3.8 sürümümde session klasörü içerisindeki db.php dosyasında aşağıdaki kod satırı var.
$this->maxlifetime = ini_get('session.gc_maxlifetime') !== null ? (int)ini_get('session.gc_maxlifetime') : 1440;
1440 değeri 24 dakikaya denk geliyor. 3.0.3.8 sürümünde bu sürede oturumu sonlandırıyor. ama 3.0.2.0 de kodlar tamamen farklı ve bu kod satırı yok.
Ana dizindeki php.ini dosyasında aşağıdaki satır var ama bu etkili değil maalesef.
session.gc_maxlifetime = 3600; - 30-12-2021, 16:12:44ahcan adlı üyeden alıntı: mesajı görüntüle
- 30-12-2021, 16:18:54halilevren adlı üyeden alıntı: mesajı görüntüle