yaratılışından bir süre sonra oturum dosyaları silmek

3 Cevap php

I am saving my sessions in another directory from /temp directory. say /session directory.( using session_save_path("session") )

Ayrıca, yaratma ve oturum kapatma 10 minuets sonra oturumu öldürmek için bir kod var.

ama ben örnek ve için kullanıcı günlükleri onun bilgisayar, benim log out ve oturum kodu dozları çalıştırmak yok, bu yüzden oturum dosyasını kapatması durumunda oturum dizinde kalacağını belirtti.

Ben bilmek istedim yaratılışından bir süre sonra /session oturum dosyaları silmek için bir yol var mı?

Ben bunun için bu kod kullanılır

  if ($handle = opendir('sessions')) {

    while (false !== ($file = readdir($handle))) {
        if (filectime($file)< (time()-600)) {  // 600 = 10*60
        unlink($file);
        }
    }
  }

ama, çalışmıyor, ben filectime($file) tarafından oluşturma saatini alamadım düşünüyorum

teşekkürler

3 Cevap

teşekkürler ama ben kendim çözmek düşünüyorum

çözüm basitti

  if ($handle = opendir('sessions')) {

  foreach (glob("sessions/sess_*") as $filename) {
    if (filemtime($filename) + 400 < time()) {
      @unlink($filename);
    }
  }

  }

Bunu gerek olmamalıdır. PHP kendisi geçersiz oturum dosyaları silmek için bir çöp toplama mekanizması uygular. Bu çok daha verimli PHP kullanarak kendiniz yazmak olabilir başka bir şey daha olacak.

Daha fazla bilgiler için PHP session.gc_* yapılandırma seçenekleri.

Ben de gittim ve (PHP'nin otomatik temizleme işini yapıyor değildi nedense) X daha eski dosyaları oturum silinen bir cron ile daha önce yaptık. Ne yazık ki, muhtemelen bu size cron işlerini kurmak için yeteneği vermez yönetilen bir ana bilgisayarda olup olmadığını olurdu bir seçenek değil.