PHP'nin belirli bir oturumun zaman aşımına uğradığını nasıl algıladığını merak ediyorum.PHP bir oturumun zaman aşımına uğradığını nasıl algılar?
Ayrıntı: Varsayılan oturum ömrü ve benzeri olan varsayılan (dosya tabanlı) oturum işleyicisini kullanıyorum. Php.ini'deki her şey varsayılan olarak açıktır.
Şimdi bir oturum başlatılmışsa, zaman aşımına uğramış oturumlar varsa, PHP bir kontrol (non session.gc_divisor ve session.gc_probability'ye bağlı olarak) yapar. Ancak, PHP'den seanslardan son seansa erişim zamanını kontrol etmek için nereden geliyorsunuz?
Oturum dosyasının kendisi yalnızca iş yükünü içerir, örn. $_SESSION['x'] = 1;
için x|i:1;
, bu nedenle son oturum erişim süresi hakkında bilgi yok.
Oturum başlatma süreleriyle ilgili bellek içi hiçbir bilginin olmadığını, oturumların tam bir sunucu yeniden başlatıldıktan sonra da çalışmaya devam ettiğini düşünüyorum.
Peki, PHP bu bilgileri nereden alıyor? Seans dosyasının mtime/ctime ile mi karşılaştırılıyor?
Hey, cevabınız için teşekkürler. "PHP'nin dosyayı kullanabileceğini" yazdın. Bunun PHP'nin varsayılan dosya tabanlı oturum işleyicisiyle çalışma şekli olduğuna eminim, fakat bununla ilgili herhangi bir resmi açıklama var mı? – hacksteak25
Hayır, ama emin olmak için her zaman php kaynağını kontrol edebilirsiniz. 'Son kullanım süresi', oturum verilerinin kendisinde kodlanmadığından, oturum dosyasının m zamanlaması, bu bilgilerin mevcut olduğu diğer tek yerdir. PHP, başka bir yerde mtimes veritabanını korumaz - eğer yaparsa, bu verinin nerede saklanacağını/belirleyeceğini belirtmek için yapılandırma seçenekleri olacaktır. –
, kaynaklara bakmaktan daha kolay bir yol olacağını umuyordu;) Ama haklısın. Mtimes için bir seçenek yok, bu yüzden dosyanın mtime'ından başka bir şey yok gibi görünüyor. Teşekkürler. – hacksteak25